0

名前、電子メールなどのプロパティを持つモデルがあります。コレクションもあります。ビューでプロパティを編集し、コレクションを変更しないままにしました。

フォームを送信しようとすると、変更された値と変更されていない値が送信されますが、コレクションは失われます。これをどのように処理しますか?

HTML.HiddenFor()- 機能しません。

フォームで変更されていないすべてのプロパティを失います !(私が使用するフォームでHTML.EditorFor(Model => Model.Name))

編集: 表示:

<% using (Html.BeginForm("Action", "Controller", FormMethod.Post))
       {%>
    <%: Html.AntiForgeryToken()%>
    <table>
        <tr>
            <td>Name: </td>
            <td>
                <%: Html.EditorFor(Model => Model.Name) %></td>
        </tr>
        <tr>
            <td>Phone: </td>
            <td>
                <%: Html.EditorFor(Model => Model.Phone) %></td>
        </tr>
@h@</table>
    <%} %>

コントローラ

 [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult SaveModelDealer(User ModelReceived)
        {
            try
            {
                if (ModelState.IsValid)
                {
                        using (Context db = new Context ())
                        {
                            System.Diagnostics.Debug.WriteLine(" " + ModelReceived.ListOfPhones.Count);
                        }
                        return View();
                }
                else
                {
                }
            }
            catch (Exception)
            {
            }
        }
4

1 に答える 1

0

フォーム内のプロパティのみがポストでサーバーに送り返されます。アクションで行ったのと同じ方法で、投稿後にコレクションを再設定する必要がありますHttpGet

フォーム内の項目を保持するが表示はしない場合は、非表示フィールドを使用できます。このような:

@Html.HiddenFor(m => m.ID);

また、この質問を確認してください。問題を解決するための例を示しました。

于 2013-09-11T13:47:22.733 に答える