- 我想通过访问/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>