asp.net – MVC3:如何强制Html.TextBoxFor使用模型值而不是POST
发布时间:2020-12-16 07:16:56 所属栏目:asp.Net 来源:网络整理
导读:在许多情况下,我遇到了一个问题,即我在服务器上创建了一个模型,作为返回值的结果.处理模型后,会更改某些模型值,然后在页面上重新显示.是否有一些简单的方法来覆盖导致MVC框架使用POSTed值而不是我的模型值的行为. 例: 模型 public class MyModel { public s
在许多情况下,我遇到了一个问题,即我在服务器上创建了一个模型,作为返回值的结果.处理模型后,会更改某些模型值,然后在页面上重新显示.是否有一些简单的方法来覆盖导致MVC框架使用POSTed值而不是我的模型值的行为.
例: 模型 public class MyModel { public string Value1 { get; set; } } 调节器 public MyController : Controller { public ActionResult MyAction() { var model = new MyModel(); model.Value1 = "OldValue"; return View(model); } [HttpPost] public ActionResult MyAction(MyModel model) { model.Value1 = "NewValue"; return View(model); } } 视图 @using(Html.BeginForm("MyAction","My",FormMethod.Post) { @Html.TextBoxFor(m => m.Value1) <input type="submit"/> } 首次加载此页面时,文本框将包含“OldValue”.单击提交后,文本框仍然包含“OldValue”,因为这是POST回服务器的内容,但我希望它使用模型中的值(NewValue)创建第二页(在POST之后). 有没有一种简单的方法告诉M??VC这样做?我不确定在这种情况下我应该做些什么才能得到我想要的结果. 注意 – 这都是伪代码,所以我可能会有一些错误,但概念应该存在. 解决方法
在您的帖子重定向(后 – 重定向 – 获取模式).
[HttpPost] public ActionResult MyAction(MyModel model) { model.Value1 = "NewValue"; return RedirectToAction("MyAction"); } 编辑 清除模型状态以传回已编辑的模型 [HttpPost] public ActionResult MyAction(MyModel model) { var newModel = new MyModel(); newModel = model; ModelState.Clear(); newModel.Value1 = "NewValue"; return View(newModel); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – Moq的意外验证行为
- asp-classic – 对经典asp中的asp页面进行更改是否需要iisr
- Azure 上部署 ASP.NET Core Web App
- asp.net-mvc – 在MVC应用程序中处理Rich Text
- 在ASP.Net上为每个Web请求创建dbcontext的成本
- 如何使用ASP.NET MVC引用CSS样式?
- asp.net-mvc – SelectList选择的值未转移到DropDownList
- asp.net – 如何配置IIS以接受POST请求?
- asp.net-mvc-5 – 更改消息“密码必须至少包含一个非字母或
- asp.net-mvc – 如何在ASP.NET MVC 3应用程序中处理未捕获的