Réinitialiser la valeur du textarea après la soumission du formulaire

  1. Je veux envoyer un message à userID=3 par aller /MyController/Message/3
  2. Cela exécute Message() [get], de l'action, j'ai entrez du texte dans la zone de texte et cliquez sur Enregistrer pour poster le formulaire
  3. Message() [post] action enregistre les modifications, réinitialise la valeur de SomeText à la chaîne vide et retourne à l'affichage.

À ce point, j'attends la zone de texte vide parce que j'ai mis ViewData["SomeText"] à la chaîne.Vide

Pourquoi la zone de texte valeur non actualisée à la chaîne vide après le post d'action?

Ici sont les actions:

[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();
}

Et la vue correspondante:

<%@ 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>
InformationsquelleAutor xraminx | 2009-04-25