ASP MVC 3 HTML的字段验证

时间:2011-04-21 03:52:36

标签: asp.net-mvc asp.net-mvc-3

我有一个需要允许HTML的字段。这是100%有效,没关系。当我从我的应用程序回发时,我收到以下消息:

A potentially dangerous Request.Form value was detected from the client (PowerSource.Text[0]="<p>A control im...").

要停止验证,我按以下方式添加到我的课程中:

public class PowerSource
{
    [System.Web.Mvc.AllowHtml] 
    public string[] Text { get; set; }
}

}

问题是它似乎不起作用。我已经为其他领域做过这个,我相信它可行。但不适合上面的领域。

有没有人有任何建议?我是否需要将此字段标记为数据成员或类似内容?

请注意我使用的是MVC3,我理解这个版本的验证有点不同。

2 个答案:

答案 0 :(得分:0)

使用[AllowHtml]属性修饰的属性是一个数组(string[])。它应该是一个简单的字符串属性:

[AllowHtml] 
public string Text { get; set; }

然后在视图中你可以有一个相应的输入字段,允许用户输入任何内容:

@Html.TextAreaFor(x => x.Text)

最后当你提交以下行动时,不应该有例外:

[HttpPost]
public ActionResult Index(PowerSource model)
{
    ...
}

答案 1 :(得分:-1)

您必须在控制器中添加[ValidateInput(false)],不知道您是否可以在模型上执行此操作,但它在控制器中适用于我。

[HttpPost]
[ValidateInput(false)]
public ViewResult Edit(Object obj)
{
}