ASP.NET MVC可以JSON对象被传递到与动态类型参数参数的控制器?(ASP.NET MVC

2019-06-26 11:41发布

我有代码我的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.prop1,它会抛出错误。 如果我将JSON.stringify在JavaScript对象类型,在控制器中的objectType将具有字符串值。

这会是可能的使用动态数据类型这样直接访问控制器中的JSON数据:objectType.prop1?

谢谢

Answer 1:

没有出来内置支持dynamic在MVC3操作的参数。

但是MVC是非常可扩展的,因此您可以添加此功能。 你需要做的是创建一个自定义IModelBinder在那里你可以做的JSON反序列化,并建立动态对象。

幸运的是,这篇文章: 制作MVC 3多一点...动态是处理完全相同的问题,所以你还可以找到示例代码和其他链接也应该帮助你开始。



文章来源: ASP.NET MVC Can JSON object be passed to a controller with parameter with dynamic type parameter?