ajax – ASP.NET MVC可以将JSON对象传递给带有动态类型参数的参数的控制器吗?

我的javascript代码,ajax发布数据:

$.ajax({
                url: '/Configurations/GetSelectedPageTranslation',
                type: 'POST',
                data: { inttype: $("#some").val(), objectType:{prop1: 'adsfa', prop2: 'asdf'}},
                success: function (result) {

                },
                error: function () {
                    alert('error');
                }
            });

在控制器中,我有一个带签名的方法:

public JsonResult GetSelectedPageTranslation(int inttype, dynamic objectType)

我可以正确地使用inttype.但是objectType不会为null,但如果我喜欢objectType.prop1,它将抛出错误.如果我将JSON.stringify javascript中的对象类型,控制器中的objectType将具有字符串值.

是否可以使用如下动态数据类型直接访问控制器中的JSON数据:objectType.prop1?

谢谢

最佳答案
MVC3中没有开箱即用的动态动作参数支持.

但是MVC非常易于扩展,因此您可以添加此功能.您需要做的是创建一个自定义IModelBinder,您可以在其中执行JSON反序列化并构建动态对象.

幸运的是这篇文章:Making MVC 3 a little more… dynamic正在处理完全相同的问题,因此您还可以找到示例代码和其他链接,以帮助您入门.

转载注明原文:ajax – ASP.NET MVC可以将JSON对象传递给带有动态类型参数的参数的控制器吗? - 代码日志