2

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

如果动作是这样定义的:

[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 动作帖子都能正常工作。

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

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

4

1 回答 1

2

当前的“ModelType”很可能包含名称为“Model”的属性,并且默认 MVC ModelBinder 尝试将“Model”属性绑定到模型变量。您应该将变量名称从动作参数更改为当前模型中不包含的变量名称。

于 2013-03-22T09:08:53.823 回答