MVC渲染数据问题

本文关键字:问题 数据 MVC | 更新日期: 2023-09-27 18:03:27

我已经创建了一个简单的mvc网页与textarea。我提交数据到服务器,然后我需要刷新视图。但是textarea总是包含浏览器数据,但是我的模型已经改变了。

调试显示:

Html.TextArea("EmailBody", Model != null ? Model.EmailBody : "Message") 
{<textarea cols="20" id="EmailBody" name="EmailBody" rows="2"> Message</textarea>}  System.Web.Mvc.MvcHtmlString {System.Web.Mvc.{Dynamic}.DynamicMvcHtmlString}

但同时

Model != null ? Model.EmailBody : "Message" "123"   string

。在页面上呈现不同于实际数据(实际数据是123,但我得到旧的数据键入在textarea)。请建议。

使用

解决问题
<textarea id="EmailBody" name="EmailBody"><%= Model.EmailBody %></textarea>

MVC渲染数据问题

我会用

@Html.TextAreaFor(model => model.EmailBody, .....

和在我的控制器中:

public ActionResult Index()
{
  var viewModel = new MyViewModel();
  viewmodel.EmailBody = "Default";
  return this.View(viewModel);
}
[HttpPost]
public ActionResult Index(MyViewModel inputViewModel)
{
  string body = inputViewModel.EmailBody // Whatever....
}
关键的一点是不要费心传递一个NULL视图模型给你的视图,给它一些默认的数据来工作。这样,您就可以使用HTML帮助程序,如TextBoxFor()或TextAreaFor()为您呈现。