我想使用ajax调用WebMethod然后初始化ViewBag,以便我可以在View中访问此ViewBag,但在使用ajax调用WebMethod后,ViewBag为空。 请告诉我ViewBag只能在Controller Actionresult中初始化吗?或者无论如何在WebMethod中初始化它。
这是ajax post请求,它正在调用控制器的Webmethod。
lstDoc.Add(new Document
{
No = GridView.Rows[i].Cells[0].Text,
Description = GridView.Rows[i].Cells[2].Text,
INo = GridView.Rows[i].Cells[1].Text.ToUpper()
});
这是控制器中的WebMethod:
$.ajax({
type: 'POST',
url: '/Home/InsertScore',
data: { Email: Em, Row: i, Answer: 'd' }
});
答案 0 :(得分:0)
您可以改用Session。
[HttpPost]
[WebMethod]
public void InsertScore(string Email ,string Row,char Answer)
{
if(Answer=='d')
{
Session["m"]="Hot";
}
if (Answer == 'r')
{
Session["m"]="Cold";
}
}
答案 1 :(得分:0)
请让我知道ViewBag只能在Controller内初始化 的ActionResult?
是的,你是对的。如果你想通过Ajax调用获得一些日期,你应该使用这种方法:
return Json(new { m = "HOT"}, JsonRequestBehavior.AllowGet);
并在客户端manualy
$.ajax({
type: 'POST',
url: '/Home/InsertScore',
data: { Email: Em, Row: i, Answer: 'd' }
success: function(data)
{
alert(data.m);
}
});