Я довольно новичок в MVC 3, но я столкнулся с довольно любопытной проблемой.
Я использую синтаксис Razor, и, согласно VS, мне не нужно префикс @
для операторов, если им сразу предшествует другой оператор @
или один раз внутри код, префикс @
больше не требуется.
Итак, вот мой код в моем представлении:
@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>
}
}
Take not that the Html.HiddenFor
and foreach
lines do not have @
prefix.
The generated HTML should produce a <form>
followed by a <input type="hidden">
field.
However, upon checking the HTML on the generated page, the hidden input field is missing.
<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 выдает ошибку.