我有一个操作,其中请求是从 kendo ui 网格的 Create 事件生成的。所有信息均已正确发布,并且模型绑定(bind)器在操作参数名称为“model”的任何情况下都能正常工作
如果操作定义如下:
[HttpPost]
public ActionResult Create(ModelType post)
{
}
一切正常。
如果相反,操作如下所示:
[HttpPost]
public ActionResult Create(ModelType model) //changed parameter Name to model
{
}
我收到无效的模型状态和此消息:
System.Web.Mvc.ModelError
The parameter conversion from type 'System.String' to type 'MyApp.Common.Models.ModelType' failed because no type converter can convert between these types."
这似乎只影响来自 Kendo UI 网格的操作,无论操作参数的名称如何,正常的 MVC 操作帖子都会起作用。
我能够使用小型测试模型创建一个新项目并重新创建此行为。
有人能解释一下这里发生的事情吗?
最佳答案
当前的“ModelType”很可能包含名称为“Model”的属性,并且默认 MVC ModelBinder 尝试将“Model”属性绑定(bind)到模型变量。您应该将操作参数中的变量名称更改为当前模型中不包含的变量名称。
关于asp.net-mvc - 如果 kendo ui grid 创建操作的参数名为 "model",则模型绑定(bind)到操作始终为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15549495/