C# 如何修剪MVC WEB API中所有传入的Json对象字段?
我试图实现的是修剪MVCWebAPI项目中字符串类型的所有传入对象属性 我认为模型绑定器应该是一个解决方案,但如果我尝试设置自定义模型绑定器而不是C# 如何修剪MVC WEB API中所有传入的Json对象字段?,c#,asp.net-mvc,asp.net-web-api,C#,Asp.net Mvc,Asp.net Web Api,我试图实现的是修剪MVCWebAPI项目中字符串类型的所有传入对象属性 我认为模型绑定器应该是一个解决方案,但如果我尝试设置自定义模型绑定器而不是ModelBinders.Binders.DefaultBinder,它就不会被击中 例如,Json是{“Name”:“testname”,“Number”:15} 例如,如果我显式地指定ModelBinder,它就会工作 [ModelBinder(typeof(MyCustomBinder))] public class TestObject
ModelBinders.Binders.DefaultBinder
,它就不会被击中
例如,Json是{“Name”:“testname”,“Number”:15}
例如,如果我显式地指定ModelBinder
,它就会工作
[ModelBinder(typeof(MyCustomBinder))]
public class TestObject
{
public string Name { get; set; }
public int Number { get; set; }
}
控制器
public class TestController : ApiController
{
// POST api/test
public void Post([ModelBinder(typeof(MyCustomBinder))]TestObject value)
{
}
登记呢
ModelBinders.Binders.Add(new KeyValuePair<Type, IModelBinder>(typeof(TestObject), new MyCustomBinder()));
ModelBinders.Binders.Add(新的KeyValuePair(typeof(TestObject),新的MyCustomBinder());
但是我想找到一种更通用的方法,这样我就不需要装饰我的项目中的每个模型类了我相信如果您的客户端代码发送类似于
“Test Name”
的带有空格的东西,那么用户可能真的希望这样做。但是,如果您试图以一种艰难的方式阻止他这样做,而不是在前端处理
,那么您可能最终会访问请求的表单
集合
public ViewResult Index()
{
Request.Form["Name"] = Request.Form["Name"].Trim();
return View();
}
或者,您可以通过其他几种方式来实现:
- 您可以创建一个通用的asbtract控制器类,它将在其
方法中执行相同的操作OnActionExecuting
- 您可以定义一个
attribute类,它将执行您用它标记的任何方法或控制器类ActionFilter
请求
属性,如下所示:
HttpRequestBase request = ((HttpContextWrapper)Request.Properties["MS_HttpContext"]).Request;
你能告诉我们你想要接收的json是什么,你期望的结果是什么,还有一些你尝试过的代码吗?问题是-我正在开发WEB API,我没有表单。。我想阻止用户创建前面或后面有空格的“帐户”或“用户”。。