Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用ValidateInput(false)装饰web api中的操作_C#_Asp.net Mvc_Asp.net Web Api_Action Filter - Fatal编程技术网

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#