而是一個重定向,
[HttpGet]
public ActionResult Index()
{
/// preform any processing necessary for your index page on GET
return View("Index");
}
[HttpPost]
public ActionResuit Edit(EditViewModel itemView)
{
if (ModelState.IsValid)
{
/// do whatever you want with your model...
}
// return the contents as they'd be rendered by the Index action
return Index();
}
請注意,這個方法在瀏覽器的網址仍然會顯示編輯URL(如/area_name/edit
),但您可以修復由:
- 使用重定向(你說過你不想這樣做)
- 使用JavaScript更新URL或使用
history.back()
作爲@AlanStephens建議
- 也許其他方法不會立即想到。
但是,我會質疑這是否是最好的方法。通常,用戶期望不同的URL可以做不同的事情。
或者,如果我理解正確和編輯的操作正在被從索引頁面調用,
[HttpGet]
public ActionResult Index()
{
return View();
}
[HttpPost] /// from a form on Index
public ActionResult Index(EditViewModel model)
{
if (ModelState.IsValid)
{
////
}
return View();
}
,只是把/Edit
出去遊玩完全。再一次,我並不真正關心這種方法。
問題是,如果我返回到索引頁,那麼不會提供索引頁的新副本而不是已經填充的那個? history.back聽起來很有趣,但我在這篇文章中沒有看到任何提及。 –
然後通過索引模型。例如:return View(model); – Jesse
@samantha不,它不應該比任何其他表單提交更多地返回緩存頁面。 –