我需要幫助來理解這件事。C#MVC 4/5 - Id存儲在哪裏?
可以說我有這樣的
[HttpGet]
public ActionResult Edit(int id)
{
var model = new Model();
return View(model);
}
一個動作,這樣
[HttpPost]
public ActionResult Edit(Model model, int id)
{
}
問題的行動:
當我做一個GET請求(例如http://url.com/controller/Edit/2)
然後操作方法的id將有值2,我們將請參閱編輯視圖。
現在,當我更改URL中的Id(例如http://url.com/controller/Edit/4) 並對另一個ActionMethod進行提交(POST)時,該ID仍然具有值2(而不是4!我預期爲)
這是爲什麼?誰可以給我解釋一下這個?
謝謝!
在模型中,你有id字段嗎?如果是的話,你還需要設置它的值 – 2014-08-28 06:17:02
請顯示你的看法。在'POST'請求中,動作參數是從'FORM'值綁定的。可能某些表單輸入(具有'id' name)值爲2 - 可能是在'GET'操作中設置的。 – 2014-08-28 06:17:26
它可能在表單中隱藏的輸入內 - 它隱藏,因爲您不希望人們在編輯模型時更改ID(鍵)。如果你想公開它,你可以使用EditorFor(m => m.id)。儘管在上面的GET中,你只是返回一個通用視圖,雖然不是你,而不是特定於傳入ID的東西嗎? – LDJ 2014-08-28 06:21:49