javascript - 将 Javascript 数组传递给 ASP.NET MVC Controller

标签 javascript asp.net-mvc

我有以下 javascript 类,我正试图将其传递给 ASP.NET MVC Controller

 var postParams = {

         attributes : [
                         {
                            name : '',
                            description: '',
                            attributeType : '',
                            value : ''
                        }
                      ]
    };

 postParams.attributes[0] = new Object();
 postParams.attributes[0].name = "test";
 postParams.attributes[0].description = "test";
 postParams.attributes[0].attributeType = "test";
 postParams.attributes[0].value = "test";

下面是我如何调用 Controller 方法:

  var actionURL = "@Url.Action("Save", "Catalog")";
  $.ajax({
                    type: "POST",
                    url: actionURL,
                    data:  postParams   ......

在 Controller 端,我声明了一个 ViewModel,如下所示:

 public class AttributeViewModel
 {
    public string name { get; set; }
    public string description { get; set; }
    public string attributeType { get; set; }
    public string value { get; set; } 
 }

我的 Controller 保存方法声明如下:

 public JsonResult Save(AttributeViewModel[] attributes)

当我执行时,属性的值总是空的。

有什么想法吗?不确定如何开始调试它。

最佳答案

你可以试试json.net图书馆来解决你的问题

  [JsonFilter(Param = "attributes", JsonDataType = typeof(AttributeViewModel[]))]
  public JsonResult Save(AttributeViewModel[] attributes)

在客户端:

$.ajax({
        type: 'POST',
        url: url,
        async: true,
        data:  JSON.stringify(attributes), //!!! Here must be the same name as in controller method
        dataType: 'json',
        contentType: 'application/json; charset=utf-8',
        success: function (data) {

        },
        error: function (xhr, ajaxOptions, thrownError) {

        }
    });

关于javascript - 将 Javascript 数组传递给 ASP.NET MVC Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10042608/

相关文章:

JavaScript 语法疯狂 - 任何人都知道为什么会发生这种情况的背景

javascript - 显示/隐藏 div 的选择/事件类

javascript - 我可以在 Tauri 桌面应用程序中使用 Firebase 或 Supabase 等服务吗?

javascript - 使用 if 语句删除 Leaflet 弹出窗口中的 "null"属性

asp.net-mvc - MVC3 中的新 T4 Controller 模板

javascript - 即使身份验证成功,PassportJS Facebook 登录 isAuthenticated 也会返回 false

c# - Global.asax 魔法函数

asp.net - 允许 MVC 中的静态内容使用 CORS

javascript - 将值从隐藏字段传递到 Controller MVC 4

c# - 在我的 BaseController 构造函数中获取现有 session