-1
我有几百个表单,其中@model Dictionary<string,CustomType_i>
CustomType_i是表单特定模型!如何以编程方式触发或控制模型绑定
而不是写一个行动foreach窗体,我试图将它们提交给一个控制器的行动。这里是我的尝试:
public ActionResult ProcessForm(string formName, Dictionary<string,dynamic> mymodel){
swich(formName){
case "Customer":
///want to tell mvc to bind to Dictionary<string,Customer>
break;
case "Business":
///want to tell mvc to bind to Dictionary<string,Business>
break;
}
}
我曾尝试使用.ToDictionary(kv => kv.Key, kv => kv.Value as Customer)
但它仍然是零,这或许意味着没有密钥的类型客户的myModel
到Dictionary<string,Customer>
转换! 当我将dynamic
更改为Customer
时,它适用于客户表单的情况,而不是其他表单的情况!
如何触发模型绑定到指定的类型?
的'DefaultModelBinder'结合模型之前执行在方法的任何代码。它太晚了,绑定已经失败,因为它不能绑定到'dynamic'。虽然你可以编写你自己的模型绑定器,但它比每个视图有一个'ActionResult'方法的代码要多得多。 –