将 JSON 对象和对象列表传递给 ASP.Net 控制器 [重复]

2023-12-20

我需要以下方面的帮助。我有这两个模型以及我将在下面使用它们的方法。

public class RoleModel
{
    public string Name { get; set; }
    public string Description { get; set; }
    public List<PermissionGroupModel> PermissionGroups { get; set; }
}

public class PermissionGroupModel
{
    public int PermissionGroupID { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
}

 [HttpPost]
 public bool CreateRole(RoleModel r){
  //code goes here
}

我尝试通过 AJAX 将数据发布到 CreateRole() 方法,并使用调试中断来检查“r”参数以查看模型是否正在填充。这是我用来测试它的 AJAX 调用。

$.ajax({
        type: "POST",
        url: "/BackOffice/CreateRole",
        data:  {"Name": "Test Name", "Description": "Test Desc", "PermissionGroups": ["Name": "Group Name", "Description": "Test Desc"]},
        success: function (data) {},
        complete: function (data) {}
      });

当发出请求时,我在 Visual Studio 中检查参数。 RoleModel 名称和描述键已填充,PermissionGroups 计数为 1,但 PermissionGroups 中的键未填充。

任何人都可以建议我以任何方式传递一个包含对象列表的 JSON 对象。

提前致谢。


您发送的 javascript 对象不正确。

 "PermissionGroups": ["Name": "Group Name", "Description": "Test Desc"]

在你的视图模型中,PermissionGroups是一个集合PermissionGroupModel项目。但你不是这样传递的。上面的代码发送 4 个字符串项作为PermissionGroups财产。您需要将集合中的每个项目包装起来{ and }

另外,为了在复杂对象上进行模型绑定,您需要使用以下命令将 javascript 对象转换为 json 字符串JSON.stringify方法并指定contentType进行 ajax 调用时的属性。这contentType财产价值应该是"application/json"

The contentType属性告诉服务器我们发送的数据是 Json 格式。

 var d = {
            "Name": "Test Name", "Description": "Test Desc",
            "PermissionGroups": [{ "Name": "Group Name", "Description": "Test Desc" }]
         };

 $.ajax({
            type: "POST",
            url: "/BackOffice/CreateRole",
            contentType: "application/json",
            data: JSON.stringify(d) ,
            success: function (data) {  console.log(data); },
            complete: function (data) {}
       });

另外,使用 Url.Action 辅助方法构建操作方法的 url 也是一个好主意。

所以更换url: "/BackOffice/CreateRole" with url: "@Url.Action("CreateRole","BackOffice")"

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 JSON 对象和对象列表传递给 ASP.Net 控制器 [重复] 的相关文章

随机推荐

  • 无法在样式中的目标标记上指定事件“LostFocus”。使用 EventSetter 代替

    为什么我会收到此错误消息 我正在使用事件设置器 edit 我没有使用内联样式 它位于资源中 即
  • 调整facet_grid中一条线的线型

    我有一个与此类似的情节 b lt data frame x c 1 2 3 1 2 3 1 2 3 1 2 3 y c 1 2 3 1 5 1 9 2 5 3 2 1 2 9 1 8 1 5 c c 1 1 1 2 2 2 1 1 1 2
  • JavaScript - 预加载图像

    我正在开发一个照片库 我希望能够在加载主图像之前显示 gif 预加载器 然后显示主图像 所以 这就是我得到的 我有一个 photo place这是保存主照片的 div 这会根据用户选择的缩略图而变化 当用户选择缩略图时 会触发此函数 fun
  • Entity Framework Core 忽略 .Include(..) 而不间接忽略 .ToList(..)

    如前所述在 EF Core 文档的 加载相关数据 中 https learn microsoft com en us ef core querying related data我们可以用 Include 立即加载导航属性DbSet 或通用I
  • 无需预处理即可通过子例程实现打印语句的强大功能?

    由于 Fortran 子例程需要声明所有内容 因此我们无法轻松编写具有与print陈述 在整个代码中 我们有 print 语句 每个语句都有多个 if 语句来处理并行处理和所选的调试输出模式 打印许多不同类型 不同格式的变量 包括带有各自
  • Hibernate 和 JPA 错误:依赖 Maven 项目上的重复导入

    我有两个 Maven 项目 一个名为项目数据另一个打电话项目休息这依赖于项目数据项目 Maven 构建成功项目数据项目但失败了项目休息项目 但以下情况除外 Caused by org hibernate DuplicateMappingEx
  • 最小化 SQLite 库大小

    我认为这对于 sqlite3 dll 或 sqlite3 lib 是相同的 但如果不是 我对 sqlite3 o mingw32 感兴趣 如何最小化库的大小 使用 O3 因为速度是我最关心的问题 所以不同的编译器优化不是一个选项 如果我知道
  • 从解析查询块返回 UIImage 数组

    我无法从此函数获得 UIImage 返回 这getDataInBackgroundWithBlock不允许我设置除Void in 然而 该块确实增加了iconArray当它迭代时 但是一旦超出该块 数组又会变空 您将在下面的代码中看到数组正
  • Firebase 动态链接在 iOS 上不起作用

    我正在制作一些应用程序并使用 firebase 动态链接 当我在我的 Android 手机上测试动态链接时 效果很好 在我的iOS中 它也可以工作 但是页面没有改变并且任何参数都没有传递 当我在 safari 上输入如下图所示的深度链接时
  • 如何使用谷歌地图V2通过触摸来在地图片段上绘制形状

    大家好 我正在使用 Google 地图 V2 我必须通过触摸在地图片段上绘制一个形状 也就是说 如果我在地图上旋转手指 就会生成一个形状 我遇到问题 因为当我们触摸时 Google mapV2 不提供纬度和经度 地图 我不需要单击 MapV
  • 限制mongodb集合中的文档数量

    我有一个用作缓存的集合 如何将这个集合中的文档数量限制为 5M 注意 可以更新的缓存项将存在于缓存中 我尝试使用 capped 但保存在 capped 集合中的项目无法修改 有没有办法做到这一点 我想避免删除该项目然后插入更新项目 不幸的是
  • “调试器无法继续运行该进程。”

    我一直在搞乱 VS 2010 调试设置 试图进入 NET Framework 工作 好吧 我无法让它工作 我还尝试过 Reflector VS 插件 并且一度可以正常工作 然后我随机开始收到此错误 This only当我在调用的行上有断点时
  • PHP 在 fclose 后无法取消链接文件

    我的脚本完成后 我可以删除该文件 但在它运行时我无法触及它 即使在fclose 这是我尝试使用的代码 Files glob SERVER DOCUMENT ROOT files csv File fopen Files 0 r while
  • 获取变量“@xml_files”不会在...行保持共享

    我有以下 Perl 代码 sub merge xml foreach my repository repo1 repo2 my xml files sub match xml my filename File Find dir if fil
  • jQuery,悬停时图像变化[重复]

    这个问题在这里已经有答案了 好的 我已经通过 PHP 动态生成了图像 因此结果不一定相同 在过去的四个小时里 我浏览了互联网并使用 jQuery 和 或 CSS 尝试了无数的事情 并且我想出了以下可行的方法 a href build php
  • 如何使用 Ninject 注入一些通用的 asp.net http 处理程序?

    我是 Ninject 的新手 我不知道如何注入我的通用 http 处理程序 我有一个 MVC3 项目 我将我的服务注入到控制器中 没有任何问题 这是我在 Ninject App start 类中用于注册服务的内容 private stati
  • 以编程邮件合并方式将数据注入到现有的 Excel 电子表格中?

    我想自动将数据输入到 Excel 电子表格中 用户数据将存在于网站上 当用户请求时 需要将该数据注入到 Excel 电子表格中 复杂之处在于 Excel 电子表格的格式在不同用户之间可能存在很大差异 它将由用户定义 我一直认为这是一个模板问
  • 如何让 IDropTarget 与 Delphi 中的 Drop Handler 配合使用?

    我已将文件扩展名与我的 Delphi 2009 程序相关联 我一直在使用命令行调用方法将文件名传递给我的 Delphi 程序 以便可以打开它 但是 我发现当选择多个文件并一次单击所有文件时 它会在程序的单独实例中打开每个文件 我问过这个 h
  • SqlServer 2005:没有共享记录的死锁问题

    我遇到两个不访问任何公共记录的事务的死锁问题 也没有锁升级 所以我无法解释为什么可能出现僵局 当两个这样的事务同时执行时就会发生死锁 begin transaction update A set value value where id 1
  • 将 JSON 对象和对象列表传递给 ASP.Net 控制器 [重复]

    这个问题在这里已经有答案了 我需要以下方面的帮助 我有这两个模型以及我将在下面使用它们的方法 public class RoleModel public string Name get set public string Descripti