我正在尝试使用vNext项目和mvc 6来关注this article中的步骤。我一直在阅读代码here,但仍然有点不确定如何实现它。
有没有人有一个他们可以分享或指出我正确方向的工作示例?
我特别想知道如何注册自定义绑定器,以及自DefaultModelBinder后我将继承哪些类。
答案 0 :(得分:5)
如何在Startup.cs中注册活页夹
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().Configure<MvcOptions>(options =>
{
options.ModelBinders.Add(typeof(MyModelBinder));
});
答案 1 :(得分:1)
我发了一篇博文,其中包含模型中自动修剪字符串的示例。
博客帖子在这里http://hotzblog.com/asp-net-vnext-defaultmodelbinder-and-automatic-viewmodel-string-trim/
我注意到直接添加到模型粘合剂不会完全起作用,因为模型粘合剂按顺序使用。您必须先删除原始模型绑定器
services.AddMvc().Configure(options =>
{
// Replace MutableObjectModelBinder with extended Trimmer version
IModelBinder originalBinder = options.ModelBinders.FirstOrDefault(x=>x.GetType() == typeof(MutableObjectModelBinder));
int binderIndex = options.ModelBinders.IndexOf(originalBinder);
options.ModelBinders.Remove(originalBinder);
options.ModelBinders.Insert(binderIndex, new TrimmingModelBinder());
});
答案 2 :(得分:0)
这是我对MVC 6
RC1
自定义Model Binder
的实现,但我必须承认它还不完美。出于某种原因,getters
的{{1}}在值绑定到它们之前就会受到影响,因此我们必须添加ViewModel
个检查,这是蹩脚的...而且我是仍然在寻找解决方案,无论如何,这应该有助于一些:
https://github.com/Serjster/IOCModelBinderExample
如果您碰巧找到解决方案,请随时提供帮助。