#asp.net #asp.net-mvc-2
#asp.net #asp.net-mvc-2
Вопрос:
Я пытаюсь отправить обратно из строго типизированного представления на мой контроллер.
проблема в том, что в модели есть пара полей, которые я не хочу разрешать пользователю редактировать. в идеале я просто хочу отображать их в виде меток, но когда я делаю это, они становятся нулевыми при публикации…
вот соответствующий код представления: это выглядит так, как я хочу, чтобы это выглядело, т.е. firstname и lastname — это метки
<td width="75px"><%: Html.DisplayFor(model=>model.FirstName, new{disabled="true"}) %></td>
<td width="75px"><%: Html.DisplayFor(model => model.LastName)%></td>
<td width="100px"><%: Html.LabelFor(model => model.EmailAddress) %></td>
<td width="75px"><%: Html.TextBoxFor(model => model.EmailAddress) %></td>
<td><%: Html.ValidationMessageFor(model => model.EmailAddress) %></td>
Модель выглядит следующим образом:
открытый класс PersonModel { [Обязательно] [DisplayName(«Имя пользователя»)] общедоступная строка FirstName { получить; установить; }
[Required]
[DisplayName("Last Name")]
public string LastName { get; set; }
[DisplayName("Email Address")]
public string EmailAddress { get; set; }
}
контроллер выглядит следующим образом:
[HttpPost] публичный ActionResult RsvpToInvitation (PersonModel отправил приглашение) {…}
Я удалил изрядное количество кода из всего этого … в основном мой вопрос заключается в том, как я могу отобразить свойство модели в виде метки и по-прежнему отправлять его обратно в контроллер?
Ответ №1:
Вы пробовали сохранять значения с помощью Html.Hidden
помощника?
Комментарии:
1. У меня создалось впечатление, что скрытые значения также не отправляются обратно? позвольте мне попробовать
2. я ошибаюсь! это работает. спасибо за супер быстрый ответ, Кену тоже спасибо!
3. @Dan, в StackOverflow ты говоришь «спасибо», голосуя за ответы. Ну, только хорошие 🙂
Ответ №2:
Вы можете сделать их скрытыми полями в вашем представлении.
<%: Html.Hidden("LastName", Model.LastName) %>
<%: Html.Hidden("EmailAddress ", Model.EmailAddress) %>