C# dotnet core 1.1.1、mvc 1.1.2中未调用模型绑定器提供程序
我使用向导创建了一个全新的.netcore项目,并添加了以下内容 从未调用模型绑定器提供程序 这是虫子吗?我错过了什么?如果我只是在C# dotnet core 1.1.1、mvc 1.1.2中未调用模型绑定器提供程序,c#,asp.net-core,asp.net-core-mvc,.net-core,C#,Asp.net Core,Asp.net Core Mvc,.net Core,我使用向导创建了一个全新的.netcore项目,并添加了以下内容 从未调用模型绑定器提供程序 这是虫子吗?我错过了什么?如果我只是在GetBinder中抛出一个异常,它永远不会到达 public void ConfigureServices(IServiceCollection services) { // Add framework services. services.AddMvc( _ => { _.ModelB
GetBinder
中抛出一个异常,它永远不会到达
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddMvc(
_ =>
{
_.ModelBinderProviders.Add(new PartyModelBinderProvider());
});
}
提供者
public class PartyModelBinderProvider : IModelBinderProvider
{
public IModelBinder GetBinder(ModelBinderProviderContext context)
{
if (context.Metadata.ModelType == typeof(Party))
return new PartyModelBinder();
return null;
}
}
活页夹
public class PartyModelBinder : IModelBinder
{
public Task BindModelAsync(ModelBindingContext bindingContext)
{
return Task.CompletedTask;
}
}
我的动作方法很简单
[HttpGet]
public IActionResult Test()
{
return View(new Party());
}
[HttpPost]
public IActionResult Test(Party party)
{
return View(party);
}
结果表明,在选择一个绑定之前,
Add
方法无法达到预期的结果,因为模型绑定将按顺序进行评估
在dotnetcore中添加模型绑定器的唯一方法是使用Insert
services.AddMvc(
_ =>
{
_.ModelBinderProviders.Insert(0, new PartyModelBinderProvider());
});
您是否尝试了参数未命名为
\uu
的AddMvc
方法?