我想通过/ MyController / Message / 3向userID = 3发送一条消息这执行Message()[get]操作,我在文本区域中输入一些文本,然后单击“保存”以发布表单Message()[post]操作保存更改,将SomeText的值重置为空字符串,然后返回视图。此时,我希望文本区域为空,因为我已将ViewData [“ SomeText”]设置为string.Empty为什么后操作后文本区域值未更新为空字符串?操作如下:[AcceptVerbs(HttpVerbs.Get)]public ActionResult Message(int ID){ ViewData["ID"] = ID; return View();}[AcceptVerbs(HttpVerbs.Post)]public ActionResult Message(int ID, string SomeText){ // save Text to database SaveToDB(ID, SomeText); // set the value of SomeText to empty and return to view ViewData["SomeText"] = string.Empty; return View();}和对应的视图:<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %><asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server"><% using (Html.BeginForm()) { %> <%= Html.Hidden("ID", ViewData["ID"])%> <label for="SomeText">SomeText:</label> <%= Html.TextArea("SomeText", ViewData["SomeText"]) %> <input type="submit" value="Save" /><% } %></asp:Content>
3 回答
慕尼黑8549860
TA贡献1818条经验 获得超11个赞
html帮助程序从ModelState读取值。并没有一种优雅的方法可以覆盖这种行为。
但是,如果您在之后添加此行SaveToDB(ID, SomeText),它应该可以工作:
ModelState["SomeText"].Value =
new ValueProviderResult("", "", CultureInfo.CurrentCulture);
- 3 回答
- 0 关注
- 771 浏览
添加回答
举报
0/150
提交
取消