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>
我会用
@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()为您呈现。