POST json 字典

2023-11-30

我正在尝试以下操作:内部带有字典的模型在第一个ajax请求上发送它,然后将结果再次序列化并将其发送回控制器。

这应该测试我是否可以在模型中取回字典。这不起作用

这是我的简单测试:

public class HomeController : Controller
{
    public ActionResult Index (T a)
    {
      return View();
    }

    public JsonResult A(T t)
    {
      if (t.Name.IsEmpty())
      {
        t = new T();
        t.Name = "myname";
        t.D = new Dictionary<string, string>();
        t.D.Add("a", "a");
        t.D.Add("b", "b");
        t.D.Add("c", "c");
      }
      return Json(t);
    }
}

//model
public class T
{
  public string Name { get; set; }
  public IDictionary<string,string> D { get; set; }
}

JavaScript:

$(function () {
    var o = {
        Name: 'somename',
        "D": {
            "a": "b",
            "b": "c",
            "c": "d"
        }
    };

    $.ajax({
        url: actionUrl('/home/a'),
        contentType: 'application/json',
        type: 'POST',
        success: function (result) {
            $.ajax({
                url: actionUrl('/home/a'),
                data: JSON.stringify(result),
                contentType: 'application/json',
                type: 'POST',
                success: function (result) {
                }
            });
        }
    });
});

在 firebug 中,接收到的 json 和发送的 json 是相同的。我只能假设有东西在途中丢失了。

有人知道我做错了什么吗?


一个不幸的解决方法:

data.dictionary = {
    'A': 'a',
    'B': 'b'
};

data.dictionary = JSON.stringify(data.dictionary);

. . .

postJson('/mvcDictionaryTest', data, function(r) {
    debugger;
}, function(a,b,c) {
    debugger;
});

postJSON js lib 函数(使用 jQuery):

function postJson(url, data, success, error) {
    $.ajax({
        url: url,
        data: JSON.stringify(data),
        type: 'POST',
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        success: success,
        error: error
    });
}

正在发布的 ViewModel 对象(大概比字典有更多的内容):

public class TestViewModel
{
    . . .
    //public Dictionary<string, string> dictionary { get; set; }
    public string dictionary { get; set; }
    . . .
}

控制器方法被发布到:

[HttpPost]
public ActionResult Index(TestViewModel model)
{
    var ser = new System.Web.Script.Serialization.JavascriptSerializer();
    Dictionary<string, string> dictionary = ser.Deserialize<Dictionary<string, string>>(model.dictionary);

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

POST json 字典 的相关文章

  • C++ 中本地类中的静态成员变量?

    我知道我们不能宣布static本地类中的成员变量 但其原因尚不清楚 那么请问有人可以解释一下吗 另外 为什么我们不能访问非static函数内部定义的变量 内部已经定义了局部类 直接在局部类成员函数中 在下面给出的代码中 int main i
  • Unix网络编程澄清

    我正在翻阅这本经典书籍Unix网络编程 https rads stackoverflow com amzn click com 0139498761 当我偶然发现这个程序时 第 6 8 节 第 179 180 页 include unp h
  • 为 Visual Studio 2013 编译 Tesseract

    我正在尝试使用tesseract在 Visual Studio 2013 中 我在链接器 gt 输入 不是 libtesseract302 static lib 中使用 libtesseract302 lib 一切都正常 并且已编译并运行
  • 启动时出现 OData v4 错误:找不到段“Whatever”的资源

    我正在构建新的 v4 服务 一切进展顺利 直到我为新模型 实体添加了新控制器 并在启动站点进行测试运行时收到此错误 控制器似乎编码正确 就像其他控制器一样 控制器 CustomersOData 中的操作 GetFeed 上的路径模板 Cus
  • 在新的浏览器进程中打开 URL

    我需要在新的浏览器进程中打开 URL 当浏览器进程退出时我需要收到通知 我当前使用的代码如下 Process browser new Process browser EnableRaisingEvents true browser Star
  • 互斥体实现可以互换(独立于线程实现)

    所有互斥体实现最终都会调用相同的基本系统 硬件调用吗 这意味着它们可以互换吗 具体来说 如果我使用 gnu parallel算法 使用openmp 并且我想让他们称之为线程安全的类我可以使用boost mutex用于锁定 或者我必须编写自己
  • 如何访问另一个窗体上的ListView控件

    当单击与 ListView 所在表单不同的表单中的按钮时 我试图填充 ListView 我在 Form1 中创建了一个方法以在 Form2 中使用 并将参数传递给 Form1 中的方法 然后填充 ListView 当我调试时 我得到了传递的
  • 单击 form2 上的按钮触发 form 1 中的方法

    我对 Windows 窗体很陌生 我想知道是否可以通过单击表单 2 中的按钮来触发表单 1 中的方法 我的表格 1 有一个组合框 我的 Form 2 有一个 保存 按钮 我想要实现的是 当用户单击表单 2 中的 保存 时 我需要检查表单 1
  • 将 Excel 导入到 Datagridview

    我使用此代码打开 Excel 文件并将其保存在 DataGridView 中 string name Items string constr Provider Microsoft Jet OLEDB 4 0 Data Source Dial
  • Visual Studio 中的测试单独成功,但一组失败

    当我在 Visual Studio 中单独运行测试时 它们都顺利通过 然而 当我同时运行所有这些时 有些通过 有些失败 我尝试在每个测试方法之间暂停 1 秒 但没有成功 有任何想法吗 在此先感谢您的帮助 你们可能有一些共享数据 检查正在使用
  • 上下文敏感与歧义

    我对上下文敏感性和歧义如何相互影响感到困惑 我认为正确的是 歧义 歧义语法会导致使用左推导或右推导构建多个解析树 所有可能的语法都是二义性的语言是二义性语言 例如 C 是一种不明确的语言 因为 x y 总是可以表示两个不同的事物 如下所述
  • 如何在 Blackberry Cascades 中显示具有特定号码的电话板

    我正在使用带有 C QT 和 QML 的 Blackberry Cascades 10 Beta 3 SDK 以及 Blackberry 10 Dev Alpha Simulator 和 QNX Momentics IDE 并且我正在尝试实
  • CheckboxFor 不与嵌套对象绑定

    当模型中嵌套的对象中定义属性时 CheckBoxFor 不受限制 这是一个例子 我有一个SearchOptions模型包含一个List
  • 为什么在setsid()之前fork()

    Why fork before setsid 守护进程 基本上 如果我想将一个进程与其控制终端分离并使其成为进程组领导者 我使用setsid 之前没有分叉就这样做是行不通的 Why 首先 setsid 将使您的进程成为进程组的领导者 但它也
  • 有没有办法强制显示工具提示?

    我有一个验证字段的方法 如果无法验证 该字段将被清除并标记为红色 我还希望在框上方弹出一个工具提示 并向用户显示该值无效的消息 有没有办法做到这一点 并且可以控制工具提示显示的时间 我怎样才能让它自己弹出而不是鼠标悬停时弹出 If the
  • 线程和 fork()。我该如何处理呢? [复制]

    这个问题在这里已经有答案了 可能的重复 多线程程序中的fork https stackoverflow com questions 1235516 fork in multi threaded program 如果我有一个使用 fork 的
  • memset 未填充数组

    u32 iterations 5 u32 ecx u32 malloc sizeof u32 iterations memset ecx 0xBAADF00D sizeof u32 iterations printf 8X n ecx 0
  • 使用 GROUP 和 SUM 的 LINQ 查询

    请帮助我了解如何使用带有 GROUP 和 SUM 的 LINQ 进行查询 Query the database IEnumerable
  • 检查Windows控制台中是否按下了键[重复]

    这个问题在这里已经有答案了 可能的重复 C 控制台键盘事件 https stackoverflow com questions 2067893 c console keyboard events 我希望 Windows 控制台程序在按下某个
  • Retrofit 2.0:预期为 BEGIN_OBJECT,但在第 1 行第 1 列路径 $ [重复] 处为 STRING

    这个问题在这里已经有答案了 我在邮递员上传递了更新用户请求并获得了成功的响应 参见图片 现在当我尝试使用 Retrofit 2 在我的应用程序中执行相同操作时 出现错误 com google gson JsonSyntaxException

随机推荐

  • Databricks 上的 Shap 值绘图错误,但在本地工作

    我想做一个简单的形状分析并绘制 shap force plot 我注意到它在 ipynb 文件中本地工作没有任何问题 但在 Databricks 上失败并显示以下错误消息 Visualization omitted Javascript l
  • 如何在 Google appengine 中加密 ZipOutputStream?

    我正在使用 Java 在 GAE 中创建 zip 文件 并使用 ZipOutputStream 将它们上传到 Google Cloud Storage 但是我需要加密文件 但我不知道如何加密 有谁知道如何在 Google Appengine
  • Firefox 处理 xxx.submit(),Safari 不处理...可以做什么?

    当用户从菜单中选择 释放鼠标 选项之一时 我试图使下拉菜单发布表单 此代码在 FF 中运行良好 但 Safari 由于某种原因不提交表单 我使用 jquery 重新编写了代码 以查看 jquery 的 submit 实现是否可以更好地处理浏
  • C# Alpha Blend 透明 PictureBox

    我的表单上显示了一个网络摄像头提要 并且想在其上绘图 我本来打算使用图片框来完成此操作 但我发现 PictureBox 不支持真正的透明度 而只支持其所在表单的颜色 它也不支持字母混合 这就是我希望它显示的方式 类似于表单的显示方式 有谁知
  • CLLocationManager requestWhenInUseAuthorization() 不起作用

    我尝试在我的 iOS 应用程序中使用位置服务 但出于某种原因requestWhenInUseAuthorization不管用 当用户第一次使用该应用程序时 会像平常一样出现提示请求权限 但当您第二次打开该应用程序时 由于某种原因didCha
  • 如何在“绑定时”获取 ListBox 中项目的 ListBoxItem

    我有一个带有 Foo 对象的 ListBox 并且根据一些事件我禁用 启用 ListBox 中的 ListBoxItems 使用 ListBox Items 属性 我找到 Foo 对象 根据我的理解 我需要使用以下函数来获取 Foo 的 L
  • excel vba插入带格式的行

    我有一个宏 它根据 Excel 2007 中的用户输入插入多行 一切正常 但我仍然有一个小问题 我想复制上面行的完整格式 它仅适用于行中的某些单元格 这是插入代码 Rows B B Insert Shift xlDown CopyOrigi
  • MySQL 中的“REPLACE”和“INSERT ... ON DUPLICATE KEY UPDATE”之间有什么实际区别?

    我需要的是使用特定键设置记录的所有字段的值 该键实际上是复合键 如果还没有具有该键的记录 则插入该记录 REPLACE似乎是为了完成这项工作 但同时它的手册页表明INSERT ON DUPLICATE KEY UPDATE 我应该更好地选择
  • 使用 pythoncurses 逐页或逐行滚动

    我正在尝试使用 pythoncurses 在窗口中写入一些文本 但是当我到达窗口的尽头时我得到了addstr returned ERR 如何逐页或逐行滚动输出 如何绑定空格键或向下箭头 这是我的代码 try screen curses in
  • ITuner::put_TuneRequest() 调用被忽略

    我有一个带有 Microsoft DVBT Network Provider AVerMedia BDA DVBT Tuner AVerMEdia BDA Digital Capture Sample Grabber 和 NULL Rend
  • 如何覆盖每个环境的 Symfony2 语义配置?

    参数 yml time limit 8 my ui yml my ui time limit time limit 配置 yml imports resource my ui yml 然后我可以通过我的包中的扩展和配置类在我的控制器中访问这
  • 确保用户制作的 HTML 模板安全

    我希望允许用户创建微小的模板 然后我使用预定义的上下文在 Django 中呈现这些模板 我假设 Django 渲染是安全的 我问了一个关于这个的问题before 但仍然存在跨站点脚本的风险 我想防止这种情况发生 这些模板的主要要求之一是用户
  • 切换 MSB 的最佳方法是什么?

    所以我想切换我的数字的最高有效位 这是一个例子 x 100101 then answer should be 00101 我有一台 64 位机器 因此我不希望答案是100000 lt 51 0 s gt 100101我想到的一种方法是计算我
  • Visual Studio FsUnit 测试设置 - 异常 NUnit.Engine.NUnitEngineException

    我使用的是 Visual Studio 2013 安装了 FsUnit 2 2 0 它需要 NUnit 3 2 1 和 FSharpCore 3 1 我创建了一个单独的测试项目 并在其中放置了一个测试装置和测试 我的平台是 x64 Win
  • Windows 下的 Unix tail 和 grep 等效项

    我们有以下 unix 命令 usr bin tail n 1 path grep silent F message rm f path This usr bin tail n 1 path 获取文件中的最后一行path变量指的是 grep
  • 数字的大小(在内存中)是多少?

    JavaScript 中数字的大小是多少 例如 我知道C中的单个字符是1个字节 int 的大小是sizeof int int64 t 的大小是 64 位 依此类推 JavaScript 中数字 十进制 浮点数 的大小是多少 以及如何找到它
  • 如何在 Mule 4 中将 SQL Server SELECT 转换为 XML?

    如何使用 Mule 4 中的 Dataweave 将以下 SQL 输出转换为 XML SELECT s RefId s LocalId s StateProvinceId s SchoolName e Email e EmailType F
  • 当 Exception 类单独可以处理所有类型的异常时,还需要其他 Exception 类吗? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 在我的一次采访中 面试官问了我一个关于多个问题catch块 问题是 为什么我们需要其他子类Exception处理异常 如果是父类 即Exception 单独可以处理所有其他异常 使用自己编
  • 为什么一个块元素中嵌套的多个内联块的innerHTML会影响内联块的定位?

    在这些示例中 注意 确保将结果窗口拖出足够宽 http jsfiddle net pPyaG http jsfiddle net pPyaG 1 http jsfiddle net pPyaG 2 为什么内联块元素内的文本数量会影响同一 d
  • POST json 字典

    我正在尝试以下操作 内部带有字典的模型在第一个ajax请求上发送它 然后将结果再次序列化并将其发送回控制器 这应该测试我是否可以在模型中取回字典 这不起作用 这是我的简单测试 public class HomeController Cont