0

ASP.Net MVC 3 和 Razor 我使用以下代码提交页面

       <input name ="button" type="submit" value="AddData" />

我从服务器端读取了控制动作方法中的模态数据。

我读取的数据来自以下代码

@Html.TextAreaFor(m => m.Letter.Letters, new {id = "LetterTextArea"});

提交页面后,我无法清除文本框中的文本。

提交(单击按钮)数据后如何清除文本。

谢谢你,史密斯

4

2 回答 2

2

我认为您正在将相同的模型返回给视图。您应该改为重定向到GET操作(Post -Redirect-Get 模式

[HttpPost]
public ActionResult Add(UserViewModel model)
{
  if(ModelState.IsValid)
  {
    //Save the data, If everything is ok, We will do a Redirect to GET action
    return RedirectToAction("Add","User");
  } 
  return View(model);    
}

RedirectToAction方法将发出一个GET请求并点击返回空表单的 GET 操作方法。

public ActionResult Add()
{
  var userViewModel=new UserViewModel();
  return View(userViewModel);
}

是一个很好的教程,为什么你应该考虑 PRG 模式。

于 2012-09-11T16:31:04.113 回答
0

除了@Shyju 回答,这是在这种情况下的最佳做法,您可以从 ModelState 中删除该值,因为 HTML 助手将首先使用存储在 ModelState 中的值,然后再使用模型中的值:

[HttpPost]
public ActionResult SomeAction(MyViewModel model)
{
    ModelState.Remove(Letter.Letters);
    model.Letter.Letters = "";
    return View(model);
}
于 2012-09-11T16:33:07.727 回答