我需要一些帮助。我使用 ASP.NET MVC4 以及 JavaScript 和 Knockout 编写了一个小应用程序,但我无法将数据从 javascript 发送到 MVC 控制器,反之亦然。例如JS部分是这样的:
self.Employer = ko.observable();
self.AboutEmployer = function (id) {
$.ajax({
Url.Action("GetEmployer", "Home")
cache: false,
type: 'GET',
data: "{id:" + id + "}",
contentType: 'application/json; charset=utf-8',
dataType: "json",
success: function (data) {
self.Employer(data);
}
}).fail(
function () {
alert("Fail");
});
};
Run Code Online (Sandbox Code Playgroud)
在 ASP.NET MVC Home Controller 中,我通过 ID 获取雇主并将其作为 Json 返回:
public JsonResult GetEmployer(int id)
{
var employer = unit.Repository<Employer>().GetByID(id);
return Json(employer, JsonRequestBehavior.AllowGet);
}
Run Code Online (Sandbox Code Playgroud)
我的视图返回另一个控制器(Home/KnockOutView)。我的视图还获取另一个对象,并且根据接收的对象,具有不同的外观:
...
<b>About …Run Code Online (Sandbox Code Playgroud) 我有这样的 JSON 字符串:
'{"1":[1,3,5],"2":[2,5,6],"3":[5,6,8]}'
我想将它发送到 Web Api 控制器而不使用 ajax 请求进行更改:
$.ajax({
type: "POST",
url: "Api/Serialize/Dict",
data: JSON.stringify(sendedData),
dataType: "json"
});
Run Code Online (Sandbox Code Playgroud)
在 Web Api 中,我有这样的方法:
$.ajax({
type: "POST",
url: "Api/Serialize/Dict",
data: JSON.stringify(sendedData),
dataType: "json"
});
Run Code Online (Sandbox Code Playgroud)
并且总是sendedData == null.另一个词:我不知道如何将 JSON 反序列化为(Dictionary<int, List<int>>.
谢谢你的答案。