我在MVC 3相當新,但我遇到了一個相當好奇的問題。 我正在使用Razor語法,根據VS,我不需要在語句前添加@
前綴爲@
語句,或者在代碼內部不再需要前綴@
。在MVC Razor中如何使用@以及何時需要它?
所以這是我在我看來代碼:
@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會產生錯誤。
你能提供編譯錯誤嗎?通常不會編譯視圖。 –