#asp.net-mvc-3 #model-binding
#asp.net-mvc-3 #привязка модели
Вопрос:
Вот вид
@using (Html.BeginForm("Deleted", "Location"))
{
Html.Hidden("LocationID", Model.LocationID );
<input type = "submit" value = "Delete" />
}
И вот метод, который должен получать данные.
public ActionResult Deleted(int LocationID)
{
//Do something with LocationID
return View();
}
Когда я запускаю код, LocationID всегда равен нулю. Я что-то упускаю?
Спасибо за помощь
Ответ №1:
Вызов Html.Hidden
возвращает IHtmlString
объект, содержащий скрытое поле.
Однако вы ничего не делаете с возвращаемой строкой.
Вам нужно отобразить строку на странице с помощью @
.
Комментарии:
1. Ну, я думаю, мне нужно больше прочитать о Razor. На самом деле, я подумал, что, поскольку я получал intellisense при вводе Html., это означает, что я получу всю магию. Иногда я получаю ошибки, сообщающие мне, что я не должен чрезмерно использовать @. Теперь я не получил никакой ошибки, но она все еще не работала. Спасибо, теперь это работает после того, как я добавил @.
2. Используется
@
для отображения выходных данных выражения на странице.3.
@
также используется для переключения с блоков разметки на блоки кода.4. Я мог бы также добавить, что, если вам не нужно устанавливать значение на лету, Html. HiddenFor создает этот же элемент с меньшим количеством строк для жирного пальца