number net mvc displayfor asp asp.net-mvc asp.net-mvc-3 razor

number - Html.DisplayFor no publicar valores en el controlador en ASP.NET MVC 3



html editorfor format number (1)

Estoy usando ASP.NET MVC 3 con Razor, a continuación se muestra un ejemplo de mi código de vista.

El usuario debería poder editar todos sus detalles, excepto el campo "EmailAddress". Para ese campo solo he usado Html.DisplayFor(m => m.EmailAddress) .

Pero cuando se publica este formulario, se rellenan todas las propiedades del modelo, excepto la EmailAddress .

¿Cómo devuelvo el correo electrónico al modelo cuando publico? ¿Debería haber usado alguna ayuda que no sea DisplayFor ?

@using (Html.BeginForm()) { @Html.ValidationSummary(true, "Account update was unsuccessful. Please correct any errors and try again.") <div> <fieldset> <legend>Update Account Information</legend> <div class="editor-label"> @Html.LabelFor(m => m.EmailAddress) </div> <div class="editor-field"> @Html.DisplayFor(m => m.EmailAddress) @*@Html.ValidationMessageFor(m => m.EmailAddress)*@ </div> <div class="editor-label"> @Html.LabelFor(m => m.FirstName) </div> <div class="editor-field"> @Html.TextBoxFor(m => m.FirstName) @Html.ValidationMessageFor(m => m.FirstName) </div> <div class="editor-label"> @Html.LabelFor(m => m.LastName) </div> <div class="editor-field"> @Html.TextBoxFor(m => m.LastName) @Html.ValidationMessageFor(m => m.LastName) </div> <p> <input type="submit" value="Update" /> </p> </fieldset> </div> }

Por favor, avísenme sobre esto.


deberás agregar un

@Html.HiddenFor(m => m.EmailAddress)

DisplayFor no enviará nada en POST, no creará una entrada ...

Por cierto, un

@Html.HiddenFor(m => m.Id) // or anything which is the model key

Sería útil