public ActionResul All()
{
var items=dbContext.Items;
return View("All",items);
}
ビューにAll
は、データを含むグリッドがあります。グリッドからレコードを選択して [編集] をクリックすると、[編集] の 2 番目のアクション メソッドに移動します。
ここで edit メソッドを呼び出すときに some フラグを渡すことができます。このように編集リンクを作成するときにそれを追加できます
@Html.ActionLink("Edit","Edit","Item",new { @id=item.Id, @from="all"},null)
from
したがって、私の Edit には、値 " " を持つクエリ文字列キー " " がありall
ます。
同じように、のビューでFocus
、別の値を渡すことができます
@Html.ActionLink("Edit","Edit","Item",new { @id=item.Id, @from="focus"},null)
編集アクション メソッドでは、パラメーターを読み取り、編集ビュー モデルのプロパティ値として設定します。このプロパティを ViewModel に追加することをお勧めします。
public ActionResult Edit(int id,string from)
{
EditItemViewModel item=GetItem(id);
item.From=from;
return View(item);
}
このビューには編集フォームがあります。の値をFrom
フォーム要素内に保持して、フォーム投稿で使用できるようにします。
@model EditItemViewModel
@using(Html.BeginForm())
{
@Html.HiddenFor(m => m.Id);
@Html.TextBoxFor(m => m.ItemName)
@Html.TextBoxFor(m => m.ItemDesc)
@Html.HiddenFor(m => m.From)
<input type="submit" value="Update" />
}
ユーザーが編集して再送信できる場所。これは HttpPost Edit アクション メソッドで処理します。From プロパティの値を確認し、保存後にリダイレクトする場所を決定します
[HttpPost]
public ActionResult Edit(EditItemViewModel model)
{
if(ModelState.IsValid)
{
//Save data
if(model.From=="all")
return RedirectToAction("All");
else
return RedirectToAction("Focus");
}
return View(model);
}