【发布时间】:2019-12-21 06:40:04
【问题描述】:
想象一下这个 Javascript 字典:
var things = {};
things['1'] = 10;
things['2'] = 11;
这里有一点 ajax 代码:
$.ajax({
url: '/Controller/Foo',
type: 'POST',
data: {
things: things
},
以下是可行的方法:
[HttpPost]
public IActionResult Foo(Dictionary<string, int> things)
事情会显示 1 映射到 10 和 2 映射到 11。
这里有些东西不起作用:
[HttpPost]
public IActionResult Foo(Dictionary<string, object> things)
事情会显示 1 映射到 null 和 2 映射到 null。
我无法更改字典类型。实际上,该 Dictionary 是在整个应用程序中使用的复杂对象的一部分(在 C# 方面)。你看到的是一个愚蠢的例子。
此外,JSON.stringify 根本没有帮助。事实上,如果我对字典进行字符串化,我得到的计数为 0,没有值。
使用 C# 来表达我的观点,我认为期望更多的是(而不是目前正在发生的):
int x = 5;
object foo = (object)x;
字典是这样定义的,因为可以这样做:
things[key] = 1;
或
things[key] = "string";
这就是它被声明为对象的原因。
如果这很重要,我正在使用 ASP.NET Core(和 jquery 3.4.1)。
谢谢。
【问题讨论】:
标签: javascript c# jquery asp.net-mvc asp.net-core