在JavaScript和C#控制器之间传递数据:Asp.NETMVC4
我想在视图和控制器之间传递数据。我做错了什么,因为它不起作用 JavaScript前端代码:在JavaScript和C#控制器之间传递数据:Asp.NETMVC4,c#,javascript,asp.net-mvc-4,razor,C#,Javascript,Asp.net Mvc 4,Razor,我想在视图和控制器之间传递数据。我做错了什么,因为它不起作用 JavaScript前端代码: $.ajax({ url: '@Url.Action("GetOid","SearchPerson")', data: {oid : 1}, type: 'POST', contentType: 'application/json; charset=utf-8', success: function (data) { // return valu
$.ajax({
url: '@Url.Action("GetOid","SearchPerson")',
data: {oid : 1},
type: 'POST',
contentType: 'application/json; charset=utf-8',
success: function (data) {
// return values
console.log("Success!" + data.oid);
},
error: function () { console.log('error!!'); }
});
C#控制器代码:
int CustomerId=0;
[HttpPost]
public ActionResult GetOid(int Oid)
{
// some code here to assign the value to a global var.
CustomerId = Oid;
ViewBag.id = Oid;
return Json(new { oid = CustomerId });
}
});
Javascript对您在服务器上设置的变量一无所知。您需要向客户端返回json,如下所示:
return Json(new { oid = CustomerId });
使用
要正确设置响应标题这让许多新手感到困惑
console.log("Success!" + **data.Data.oid**);
您应该学习浏览器端的fire debugger,并在“监视窗口”中查看您关心的问题。对ajax数据属性进行此更改。它需要作为字符串传递
data: JSON.stringify({ "Oid": 1 }),
此外,控制器参数和数据参数也需要相同。这些文件区分大小写
public ActionResult GetOid(int Oid)
如前所述,以json格式返回它
return Json(new { oid = CustomerId });
我用firebug,但我用chrome和ie进行测试。是的,我是新手。非常感谢@我不感谢你@内森·安德森
return Json(new { oid = CustomerId });