ASP.NET MVC - TextArea值

时间:2010-07-12 13:33:31

标签: asp.net asp.net-mvc

我使用ASP.NET MVC设置了WYSIWYG编辑器。当我发布时,一切都很好,但是当我发布并且页面返回时出现错误并显示错误时,文本框中的值混乱(它已成为非HTML编码)并且出于表单验证的原因,这可以。 我的问题是 - 如何在控制器(最好)中更改textarea中文本的值?即使我使用ViewData [“fieldname”]并将asp代码设置为:

<%= Html.TextArea("fieldname", ViewData["fieldname"], new { id = "fieldthing", name = "fieldthing", cols = "80", rows = "10" })%>

它仍然不起作用,因为ViewData是默认值,在帖子之后,它没有返回到该值,它保留了输入的内容。

那么关于如何编辑这个值的任何想法?我尝试传递一个新视图,但这也不起作用。

谢谢!

2 个答案:

答案 0 :(得分:0)

当您在控制器中检测到错误时,您是否重置 ViewData["fieldname"]的值与fieldname的值相同?

考虑实施这样的事情,如果它有帮助:

if (!SanityCheckUserInput())
{
  //something didn't pass validation. send back to user for correction
  ViewData["fieldname"] = Request.Form["fieldname"];
  return View(); //return the same View
}

答案 1 :(得分:0)

在帖子上,ModelState将保留已发布的值,并在返回到同一页面时使用该值重新填充表单(验证失败)。如果您不想这样做,请尝试ModelState.Remove("fieldthing");