MVC 3에서 상당히 새로운데, 다소 호기심 많은 문제가 생겼습니다. 저는 Razor 구문을 사용하고 있습니다. VS에 따르면 @
문 앞에 다른 @
문이 있거나 코드 내에 한 번 더 접두어 @
이 더 이상 필요하지 않으면 문에 접두사를 붙일 필요가 없습니다.MVC 면도기에서 @는 어떻게 사용되고 언제 필요합니까?
@using (Html.BeginForm("StudentSelect", "Home", FormMethod.Post, new { id = "sSelect" })) {
Html.HiddenFor(m => m.SelectedStudent);
foreach (Classes.CStudent item in Model.Students)
{
<div class="studentSelect">
<div class="studentname">@item.StudentName</div>
<div>@item.Address</div>
</div>
}
}
가 Html.HiddenFor
및 foreach
라인 @
접두사를하지 않아도하지 보자
그래서 여기 내보기에 내 코드입니다. 생성 된 HTML은 <form>
다음에 <input type="hidden">
필드를 생성해야합니다. 그러나 생성 된 페이지에서 HTML을 확인하면 숨겨진 입력 필드가 누락됩니다.
<form action="/Home/StudentSelect" id="sSelect" method="post">
<div class="studentSelect">
<div class="studentname">Name1</div>
<div>AAA</div>
</div>
<div class="studentSelect">
<div class="studentname">Name2</div>
<div>Address1</div>
</div>
</form>
내가 잘못 했나요? 숨겨진 입력이 렌더링되지 않는 이유는 무엇입니까? 실마리가 도움이됩니다. 감사합니다
그건 그렇고,이 코드가 올바르게 컴파일됩니다. 그러나 Html.HiddenFor
앞에 @
접두사를 붙이면 내 코드가 컴파일되지 않고 Visual Studio에서 오류가 발생합니다.
컴파일 오류를 제공 할 수 있습니까? 뷰는 일반적으로 컴파일되지 않습니다. –