C#MVC4更改视图属性不改变视图HTML页面上的数据

更新:Jacco的建议(下)为我解决了这个问题。 即,ModelState.Clear()是你的朋友。

我有一个名为ScheduleController的控制器,它的ActionResult如下所示:

[HttpPost]
public ActionResult Create(ScheduledCall scheduledcall)

scheduledCall模型对象有一个名为content的属性。 我有一个条件,我想更改content属性的值,并将模型返回到供用户在浏览器中阅读的视图。 我发现尽管更改属性的值很容易完成,但该视图不会为HTML显示提供新的值。 而是显示用户提交的内容。

控制器操作中的示例:

scheduledcall.Content = "Mark my words!";
ViewBag.message = scheduledcall.Content;
return View(scheduledcall);

在视图中,我输出@ ViewBag.message(它在控制器中设置为匹配scheduledcall.Content属性的值)。 在视图中的输出是“标记我的话!”,但内容的文本区域(@ Html.TextAreaFor(model => model.Content))显示用户输入的文本,而不是“标记我的话!”。

如何让视图在文本区域显示更新的值?


我想你的答案就在这里

Html.TextBoxFor不会在POST操作中显示更新的值

ModelState.Clear(); 或者模型的复制应该做到这一点。

也曾经这样做过,它是MVC框架中不那么明显的角落之一。

问候,Jacco


可能不是你要找的答案。

考虑使用Post / Redirect / Get模式,而不是从POST返回呈现的视图。

Post / Redirect / Get(PRG)是一种Web开发设计模式,可防止一些重复的表单提交,为用户代理(用户)创建更直观的界面。 PRG以可预测的方式实现书签和刷新按钮,不会创建重复的表单提交。

链接地址: http://www.djcxy.com/p/53961.html

上一篇: C# MVC4 changed view property not changing data on view HTML page

下一篇: MVC textbox postback issue