c# MVC4改变了视图属性,不改变视图HTML页面上的数据

本文关键字:视图 改变 数据 HTML MVC4 属性 | 更新日期: 2023-09-27 18:03:59

更新:Jacco的建议(下面)为我修复了这个问题。也就是说,ModelState.Clear()是您的朋友。

我有一个名为ScheduleController的控制器,它的ActionResult看起来像这样:

[HttpPost]
public ActionResult Create(ScheduledCall scheduledcall)

scheduledCall模型对象有一个名为content的属性。我有一个条件,我想改变内容属性的值,并将模型返回给视图,以便用户在浏览器中读取。我发现,虽然更改属性的值很容易完成,但视图不会将新值呈现给HTML显示。相反,它显示用户提交的内容。

控制器动作示例:

scheduledcall.Content = "Mark my words!";
ViewBag.message = scheduledcall.Content;
return View(scheduledcall);
在视图上,我输出@ViewBag。消息(在控制器中设置该消息以匹配schedulecall的值)。内容属性)。视图中的输出是"Mark my words!",但文本区域用于内容(@Html)。TextAreaFor(model => model. content))显示用户输入的文本,而不是"标记我的单词!"

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

c# MVC4改变了视图属性,不改变视图HTML页面上的数据

我想你的答案在这里

Html。TextBoxFor在POST操作中没有显示更新后的值

ModelState.Clear();或者复制模型也可以。

也遇到过一次,这是MVC框架中不那么明显的角落之一。

问候,Jacco

可能不是你想要的答案。

考虑使用POST/Redirect/Get模式,而不是从POST返回渲染视图。

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