我使用ASP.NET MVC设置了WYSIWYG编辑器。当我发布时,一切都很好,但是当我发布并且页面返回时出现错误并显示错误时,文本框中的值混乱(它已成为非HTML编码)并且出于表单验证的原因,这可以。 我的问题是 - 如何在控制器(最好)中更改textarea中文本的值?即使我使用ViewData [“fieldname”]并将asp代码设置为:
<%= Html.TextArea("fieldname", ViewData["fieldname"], new { id = "fieldthing", name = "fieldthing", cols = "80", rows = "10" })%>
它仍然不起作用,因为ViewData是默认值,在帖子之后,它没有返回到该值,它保留了输入的内容。
那么关于如何编辑这个值的任何想法?我尝试传递一个新视图,但这也不起作用。
谢谢!
答案 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");