C# 如何使用ValidateInput(false)装饰web api中的操作
我需要从普通的C# 如何使用ValidateInput(false)装饰web api中的操作,c#,asp.net-mvc,asp.net-web-api,action-filter,C#,Asp.net Mvc,Asp.net Web Api,Action Filter,我需要从普通的MVC控制器迁移到WebApi控制器 我的普通mvc控制器 [HttpPost] [ValidateInput(false)] public ActionResult Validate(string data) { } WebApi控制器 [HttpPost] [ValidateInput(false)] // the moment I resolve the namespace System.Web.Mvc all the [HttpPost],[HttpGet] star
MVC
控制器迁移到WebApi
控制器
我的普通mvc控制器
[HttpPost]
[ValidateInput(false)]
public ActionResult Validate(string data)
{
}
WebApi控制器
[HttpPost]
[ValidateInput(false)]
// the moment I resolve the namespace System.Web.Mvc all the [HttpPost],[HttpGet] starts throwing error.
public HttpStatusCode Post([FromBody]string data)
{
}
有人能解释一下为什么会这样&如何满足这个要求吗?要拥有一个Api控制器,您必须继承自
ApiController
。此外,如果通过添加名称空间开始出现错误,则必须将名称空间显式地添加到属性中,例如System.Web.Http.HttpPost
您实际上不必在Web api中使用类似于[ValidateInput(false)]的东西,它旨在防止MVC应用程序中的XSS攻击
另外,您必须引用的名称空间是System.Web.Http我在javascript中使用了htmlEncode,在C中使用了HttpUtility.HtmlCode#