MyViewビューでこれをリンクする何かがある場合:
@model ModelClass
@Html.BeginForm()
{
if(Model.Id > 0)
{
@Html.HiddenFor(m => m.Id);
}
...
}
そしてコントローラーで:
public ActionResult Edit(int id)
{
var model = modelRepository.GetById(id);
Return View("MyView", model);
}
[HttpPost]
public ActionResult Edit(int id, FormCollection collection)
{
var model = modelRepository.GetById(id);
TryUpdateModel(model)
{
modelRepository.Save(model);
}
}
public ActionResult Create()
{
var model = new ModelClass();
Return View("MyView", model);
}
[HttpPost]
public ActionResult Create(ModelClass model)
{
...
}
ビューで、Model.Id > 0 の場合は、編集アクションを使用してビューに入ったということであり、フォーム投稿時に、投稿パラメーターに Id フィールドがある場合 (id は非表示)、Edit(with HttpPost) が呼び出されます。 Id パラメータではない場合、Create アクションが呼び出されます