Html.DisplayFor nie wysyła wartości do kontrolera w ASP.NET MVC 3
Używam ASP.NET MVC 3 z Razor, poniżej znajduje się przykład z mojego kodu widoku.
Użytkownik powinien mieć możliwość edycji wszystkich swoich danych, z wyjątkiem pola „EmailAddress”. Tylko dla tego pola użyłemHtml.DisplayFor(m => m.EmailAddress)
.
Ale gdy ten formularz zostanie opublikowany, wszystkie właściwości modelu zostaną wypełnione z wyjątkiem właściwościEmailAddress
.
Jak uzyskać e-mail z powrotem w modelu podczas wysyłania? Czy powinienem użyć jakiegoś pomocnika innego niż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>
}
Proszę mi o tym poradzić.