如果参数被命名为“模型”用于kendo ui网格创建操作,则模型绑定到操作始终为null

时间:2013-03-21 13:54:15

标签: asp.net-mvc kendo-ui

我有一个动作,其中请求是从kendo ui网格的Create事件生成的。所有信息都正确发布,并且模型绑定器在任何情况下都可以正常运行,其中操作参数名称为“model”

如果动作定义如下:

[HttpPost]
public ActionResult Create(ModelType post)
{                                                                                                    
}

一切正常。

但如果相反,则操作如下:

[HttpPost]
public ActionResult Create(ModelType model) //changed parameter Name to model
{                                                                                                    
}

我收到了一个无效的模型状态和这条消息:

  

System.Web.Mvc.ModelError

     

从类型'System.String'到类型的参数转换   'MyApp.Common.Models.ModelType'失败,因为没有类型转换器可以转换   这些类型。“

这似乎只影响来自Kendo UI网格的动作,无论动作参数的名称如何,普通的MVC动作帖都可以工作。

我能够使用小型测试模型创建一个新项目,并重新创建此行为。

任何人都可以对这里发生的事情有所了解吗?

1 个答案:

答案 0 :(得分:2)

最有可能当前的“ModelType”包含名为“Model”的属性,而Default MVC ModelBinder尝试将“Model”属性绑定到模型变量。您应该将操作参数中的变量名称更改为当前模型中未包含的变量名称。