gpt4 book ai didi

asp.net-mvc - 保存后显示相同页面

转载 作者:行者123 更新时间:2023-12-04 10:21:01 25 4
gpt4 key购买 nike

我想显示一个带有某个字段(示例中的一个)的表单,提交它,保存并显示同一页面并重置所有字段。我提交时的问题,我执行“保存”操作,但是当我显示 View 时,表单仍然被填写。

型号:

public class TestingModel
{
public string FirstName { get; set; }
}

Controller :
    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 调试到 View 时,在“即时窗口” Model.FirstName = ""但是当页面显示时,我仍然有发布的值(value)。我试过 ReditrectionToAction("Index")Save 的末尾方法但结果相同。

你有想法吗 ?

谢谢,

最佳答案

如果你想这样做,你需要清除 ModelState 中的所有内容。否则,HTML 助手将完全忽略您的模型并在绑定(bind)其值时使用来自 ModelState 的数据。

像这样:

[HttpPost]
public ActionResult Save(TestingModel model)
{
//Save data to DB here ...

ModelState.Clear();
TestingModel testingModel = new TestingModel() { FirstName = string.Empty };
return View("Index", testingModel);
}

或者直接重定向到索引 GET成功时的操作:
[HttpPost]
public ActionResult Save(TestingModel model)
{
//Save data to DB here ...
return RedirectToAction("Index");
}

关于asp.net-mvc - 保存后显示相同页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6856451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com