1

私は MVC を初めて使用するので、ばかげているように聞こえるかもしれませんが、次のようになります。編集フォームに渡す必要がある 2 つのリストを含むモデルがあります。

public class BaseViewModel
{
    public IEnumerable<portal_notifications_types> Types { get; set; }
    public IEnumerable<portal_notifications_importances> Importances { get; set; }
}

編集フォームでは、このフィールドに 2 つのドロップダウン リストがあります。

@Html.DropDownListFor(m => m.Notification.TypeId, new SelectList(Model.Types, "Id", "Type"), "-- Select type --", new { onchange = "GetNotifType();", style = "width:150px;" })

@Html.DropDownListFor(m => m.Notification.ImportanceId,  new SelectList(Model.Importances, "Id", "Importance"), "-- Select importance --", new { style = "width:150px;" })

最初に編集ビューに入ると、すべて問題なく、ドロップダウンリストが入力され、対応する値が選択されます。ただし、フォームを送信すると、Model.Types および Model.Importances リストが null であるため、ドロップダウン リストでエラーがスローされます。どうすればこれを克服できますか? ViewBag を使用してこれらのリストを保存することは避けたいと思いますが、それが機能することはわかっています。

4

2 に答える 2

1

Action MethodでView Modelを再度渡します。Post

[HttpPost]
public ActionResult Index(ViewModel m)
{
     return View(m); //Pass the View Model again.
}
于 2013-08-13T06:58:33.897 に答える
0

メソッドでSelectListsこれら2 つを再設定し、編集のためにビューで再度渡す必要があります。詳細については、コードを共有してください。Controller POSTEditViewModelControllerEdit

于 2013-08-13T06:56:59.853 に答える