我想显示一个带有某个字段的表单(示例中有一个),提交它,保存并显示同一页面并重置所有字段.我提交时的问题,我进行“保存”操作,但是当我显示视图时,表单仍然填写.
该模型 :
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”)但结果相同.
你有好主意吗 ?
谢谢,
解决方法
如果你想这样做,你需要清除ModelState中的所有内容.否则,HTML帮助程序将完全忽略您的模型,并在绑定其值时使用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); }
或者只是在成功的情况下重定向到Index GET操作:
[HttpPost] public ActionResult Save(TestingModel model) { //Save data to DB here ... return RedirectToAction("Index"); }
原文地址:https://www.jb51.cc/aspnet/246345.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。