Hen*_*bæk 5 c# model-binding asp.net-mvc-4
我在C#MVC4项目中有这个课程:
public class SaveModel
{
....
[AllowHtml]
public string BodyHtml { get; set; }
[AllowHtml]
public Dictionary<string, string> AdditionalTemplate { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
一个控制器动作看起来像这样
public ActionResult SaveTemplate(SaveModel model)
{
....
}
Run Code Online (Sandbox Code Playgroud)
BodyHtml工作正常,但由于某种原因,AllowHtml不能在Dictionary上工作,我收到这样的错误:
A potentially dangerous Request.Form value was detected from
the client (additionalTemplate[0].value="<tr>..."
Run Code Online (Sandbox Code Playgroud)
有没有什么方法可以绕过它,除了通过在我的操作上放置[ValidateInput(false)]来禁用整个请求的验证?
[ValidateInput(false)]
public ActionResult SaveTemplate(SaveModel model)
{
....
}
Run Code Online (Sandbox Code Playgroud)
作为快速解决方法,您可以为键值集合创建自己的类型,其中有两个属性。Value 属性可以标记为AllowHtml,如下所示:
public List<MyCustomItem> AdditionalTemplate { get; set; }
Run Code Online (Sandbox Code Playgroud)
布拉布拉
class MyCustomItem
{
public string Key { get; set; }
[AllowHtml]
public string Value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
514 次 |
| 最近记录: |