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


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, todas las propiedades del modelo se completan excepto el EmailAddress.

¿Cómo devuelvo el correo electrónico al modelo cuando publico? Debería haber usado algún ayudante 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.


32
2017-09-07 08:55


origen


Respuestas:


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


46
2017-09-07 08:57