[英]Why Viewbag not show in asp.net mvc view page?
我是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
您返回的是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');
}
});
制作视图时,将Viewbag对象填充到视图(服务器端)中。 在完成视图之后,您的ajax调用会与服务器联系,询问有关Json数据的信息 。
因此,如果您这样做的话,将对象传递到视图包中为时已晚。
但是,对于此问题,有一些解决方法/解决方案:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.