39

RazorでASP.NETMVC3を使用しています。以下は、ビューコードのサンプルです。

ユーザーは、「EmailAddress」フィールドを除くすべての詳細を編集できる必要があります。そのフィールドには、私だけが使用しHtml.DisplayFor(m => m.EmailAddress)ました。

ただし、このフォームが投稿されると、を除くすべてのモデルプロパティが入力されEmailAddressます。

投稿時にモデルにメールを戻すにはどうすればよいですか?私は他のヘルパーを使うべきでした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>
}

これについて教えてください。

4

1 に答える 1

57

を追加する必要があります

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

DisplayForPOSTで何も送信せず、入力を作成しません...

ところで、

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

役に立つだろう

于 2012-09-07T08:57:27.580 に答える