gpt4 book ai didi

c# - 表单提交后重置textarea的值

转载 作者:IT王子 更新时间:2023-10-29 04:11:40 28 4
gpt4 key购买 nike

  1. 我想通过转到/MyController/Message/3 向 userID=3 发送消息
  2. 这将执行 Message() [get] 操作,我在文本区域中输入一些文本并单击“保存”以发布表单
  3. Message() [post] 操作保存更改,将 SomeText 的值重置为空字符串并返回到 View 。

此时我希望文本区域为空,因为我已将 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();
}

以及相应的 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>

最佳答案

问题是您的 ModelState 重新填充了发布的值。

你可以做的是在具有 Post 属性的 Action 上清除它:

ModelState.Clear();

关于c# - 表单提交后重置textarea的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/787895/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com