【发布时间】:2012-12-28 10:29:35
【问题描述】:
我是 MVC 3 的新手,但遇到了一个相当奇怪的问题。
我正在使用 Razor 语法,根据 VS,如果语句前面紧跟另一个 @ 语句,或者在代码中,前缀 @ 是 no需要更长的时间。
所以这是我视图中的代码:
@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 会产生错误。
【问题讨论】:
-
你能提供编译错误吗?视图通常不会被编译。
标签: html asp.net-mvc asp.net-mvc-3 razor hidden-field