我是asp.net mvc的初学者,编写这个java脚本代码,用于从控制器获取任何数据:
$.ajax({
url: '@Url.Action("CallService", "MyScore")',
type: 'GET',
dataType: 'json',
cache: false,
data: {
'id': 29
},
success: function(color) {
//alert(color);
},
error: function() {
alert('Error occured');
}
});
并在控制器中写下此操作:
[HttpGet]
public ActionResult CallService(string id)
{
var idNum = Convert.ToInt32(id);
string color = idNum.ToString();
ViewBag.Myfamily = "razzaqi";
return Json(color, JsonRequestBehavior.AllowGet);
}
在视图页面中写下此代码:
<h1> Hello Dear @ViewBag.Myfamily</h1>
当我运行项目<h1> Hello Dear @ViewBag.Myfamily</h1>
没有告诉我,但我认为这给我看这个输出:
Hello Dear razzaqi
答案 0 :(得分:1)
您返回的JSON不是ViewBag
。您需要将"razzaqi"
作为JSON对象的一部分发送。将HTML设置为
<h1> Hello Dear <span id='familyname'></span></h1>
修改您的控制器以返回myfamily
作为JSON对象的一部分。
[HttpGet]
public ActionResult CallService(int id)
{
string color = id.ToString();
return Json(new {
color = color
myfamily = "razzaqi"
}, JsonRequestBehavior.AllowGet);
}
使用像
这样的结果$.ajax({
url: '@Url.Action("CallService", "MyScore")',
type: 'GET',
dataType: 'json',
cache: false,
data: { 'id': 29 },
success: function (data) {
$('#familyname').text(data.myfamily)
},
error: function () {
alert('Error occured');
}
});
答案 1 :(得分:0)
Viewbag对象在进行视图时填充到视图,服务器端。您的ajax调用与服务器联系,在查看完成后询问Json数据 。
所以,如果你这样做,你就太迟了将对象传递给你的viewbag ......
但是有一些解决此问题的解决方法/解决方案: