我想用一些字段(示例中的一個)顯示錶單,提交它,保存並顯示同一頁面,並重置所有字段。當我提交萬阿英,蔣達清,我走了「保存」動作,但是當我顯示視圖的形式依然瀰漫在保存後顯示相同的頁面
模型:
public class TestingModel
{
public string FirstName { get; set; }
}
控制器:
public class ChildController : Controller
{
public ActionResult Index()
{
TestingModel model = new TestingModel();
return View(model);
}
public ActionResult Save(TestingModel model)
{
Console.WriteLine(model.FirstName); //OK
//Save data to DB here ...
TestingModel testingModel = new TestingModel() { FirstName = string.Empty };
return View("Index", testingModel);
}
}
的視圖:
@using (Html.BeginForm("Save", "Child",FormMethod.Post))
{
@Html.TextBoxFor(m => m.FirstName)
<input type="submit" id="btSave" />
}
當Id調試到視圖,在「Immediat窗口」Model.FirstName = ""
,但是當頁面顯示時,我仍然有張貼的值。我在Save
方法的末尾嘗試了ReditrectionToAction("Index")
,但結果相同。
你有什麼想法嗎?
感謝,
謝謝Darin :)我的示例正在工作,現在嘗試在真正的項目中,敬請期待:) –
@ Kris-l肯定會在真正的項目中工作。 ModelState具有模型的值提供者的最高優先級。當您第一次發佈模型時,ModelState會填充您發佈的值。然後,無論您是向您提供new()模型還是提供null值,ModelState都已經包含您之前發佈的模型中的值,並使用這些值(最高優先級)填充新模型。因此,您可以在視圖中獲得相同的模型值。但是,當清除模型狀態並傳遞new()模型進行查看時,您確實會獲得新估計的模型。 – archil