2011-01-17 5 views
6
@using(Html.BeginForm()){ 
Name: 
    @Html.TextBoxFor(o => o.Name) 
     <input type="submit" value="submit" /> 
    } 

이 경우 오류가 발생합니다. CS1002 :;면도기가 묻습니다.

또는 내가 이런 식으로 할 경우 :

<form action="@Url.Action("AddHuman")" method="post"> 
Name: 
    @Html.TextBoxFor(o => o.Name) 
     <input type="submit" value="submit" /> 
</form> 

답변

17

문제는 당신 Name: 문자와 가능성이 높습니다 그것은 내가 이름을 제거하면 작동

을 기대했다. Razor는 코드 블록 안에 있기 때문에 다음 줄이 코드 줄임을 전제로합니다. Name: 앞에 @:을 붙이거나 <text></text>으로 감싸서이 문제를 피할 수 있습니다. 텍스트 태그는 면도기의 경우 특별하며 뷰 엔진에서 파싱 할 때 제거됩니다.

당신의 <input>은 괜찮습니다. 면도기는 그것이 마크 업 태그임을 인식하고 응답 스트림에 쓰고, Name:은 실제 마크 업 태그가 아니기 때문에 이것을 가정 할 수 없습니다.

2

때때로 면도기가 혼란스러워 지므로 코드를 html 태그 안에 넣어야합니다. 면도기에서 가져 오지 못하기 때문에 html 태그를 추가하지 않으려면 <text>을 사용하면됩니다.

@using(Html.BeginForm()){ 
    <text> 
     Name: 
     @Html.TextBoxFor(o => o.Name) 
     <input type="submit" value="submit" /> 
    </text> 
} 
+0

@@ Name : –

관련 문제