asp.net-mvc – 属性的自定义模型binder
|
我有一个以下控制器操作: [HttpPost]
public ViewResult DoSomething(MyModel model)
{
// do something
return View();
}
MyModel看起来像这样: public class MyModel
{
public string PropertyA {get; set;}
public IList<int> PropertyB {get; set;}
}
所以DefaultModelBinder应该绑定这个没有问题。唯一的事情是,我想使用特殊/自定义绑定绑定PropertyB,我也想重用这个绑定。所以我认为这个解决方案是在PropertyB之前放置一个ModelBinder属性,当然这不是一个属性(属性不允许使用ModelBinder属性)。我看到两个解决方案: 1.)使用动作参数而不是我不喜欢的模型(模型有很多属性…),如下所示: public ViewResult DoSomething(string propertyA,[ModelBinder(typeof(MyModelBinder))] propertyB) ... 2.)要创建一个新类型,可以说MyCustomType:列出并注册此类型的模型binder(这是一个选项) 还有其他的第三个解决方案吗?也许为MyModel创建一个绑定,重写BindProperty,如果属性“PropertyB”绑定属性与我的自定义绑定。这可能吗? 感谢您的答案… 解决方法
这是一个很好的解决方案,虽然不是检查“是PropertyB”,但您最好检查自己定义属性级绑定器的自定义属性,例如 [PropertyBinder(typeof(PropertyBBinder))]
public IList<int> PropertyB {get; set;}
您可以看到BindProperty覆盖here的示例。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 为什么在ASP.Net中向StatusDescription添加换行符会关闭连接
- asp.net-mvc – 返回ASP.Net Core MVC中的上一页
- azure – 获取#error = unsupported_response_typeerror_de
- asp.net – 从_layout.cshtml将常量值传递给Angular
- asp.net-mvc – ASP.NET Azure 400错误请求不返回JSON数据
- asp.net-mvc-4 – Kendo UI组合框复位值
- asp.net-mvc – 嵌套对象的远程ViewModel验证无效
- asp.net-mvc – 了解nopCommerce的MVC标签
- asp.net – MSDeploy连接字符串的自动加密,字典中找不到密钥
- asp.net-mvc – 如何创建特定于区域,控制器和操作的自定义A
- asp-classic – 为经典Asp Session Cookie设置HT
- asp.net-mvc – asp.net mvc通用控制器
- asp.net – HttpCookieCollection.Add和HttpCook
- 使用ASP.NET,JQuery和Suckerfish构建数据库驱动的
- asp.net-mvc – Asp.Net Mvc – Html.TextBox –
- 如何在ASP.NET修复的oracle填充攻击?
- ASP.NET搜索引擎
- asp.net-mvc-3 – MVC3中的模型级错误?
- asp.net – IIS 7.5中的URL重写会导致内部服务器
- asp.net – 如果Ninject尚未绑定,如何在Ninject中
