C#属性值不';无法在Javascript/jquery中进行修改
我在控制器的构造函数中初始化属性C#属性值不';无法在Javascript/jquery中进行修改,javascript,c#,jquery,asp.net-mvc,Javascript,C#,Jquery,Asp.net Mvc,我在控制器的构造函数中初始化属性 public BookController() { SessionProvider.SessionLoadSceanrio = false; } 我有一个操作方法,可以在按钮单击事件中再次重置属性 public ActionResult LoadScenario(int bookId) { SessionProvider.SessionLoadSceanrio = true; // remaining code return Json(Scen
public BookController()
{
SessionProvider.SessionLoadSceanrio = false;
}
我有一个操作方法,可以在按钮单击事件中再次重置属性
public ActionResult LoadScenario(int bookId)
{
SessionProvider.SessionLoadSceanrio = true;
// remaining code
return Json(ScenarioId, JsonRequestBehavior.AllowGet);
}
下面的javascript代码在我的视图中,单击按钮时会调用它
var BookHandler = {
$("#btnLoadScen").click(function (e) {
$.ajax({
url: "@Url.Action("LoadScenario", "Book")",
dataType: 'json',
type: 'POST',
data: {
'bookId': BookHandler.getBookId()
},
success: function (response) {
var scenarioId = response;
var isLoadScenario = "@Portal.Presentation.Web.Planning.MVC.App_Start.SessionProvider.SessionLoadSceanrio";
//otherproperties
window.open("@Url.Action("Index", "BookScenario", new {loadScenario = "_loadScenario"}).replace('_loadScenario', isLoadScenario), tabId);
},
error: function () {
}
});
});
}
我的问题是,当我单击按钮时,控制器中的属性值会发生更改。但是在我的javascript代码中它没有改变。请查看开发人员工具的屏幕截图。有人对此有线索吗?以下代码只有在您从服务器获得视图后才会进行评估,在ajax调用后不会重新评估
var isLoadScenario = "@Portal.Presentation.Web.Planning.MVC.App_Start.SessionProvider.SessionLoadSceanrio";
为了达到预期目的,您需要在回复中返回SessionLoadSceanrio
你可以这样做:
public ActionResult LoadScenario(int bookId)
{
SessionProvider.SessionLoadSceanrio = true;
// remaining code
return Json(new {ScenarioId, SessionLoadSceanrio = SessionProvider.SessionLoadSceanrio}, JsonRequestBehavior.AllowGet);
}
您正在使用razor语法。然后最初加载页面,设置值,这些值是字符串,不再是变量。那么您就无法再次更新会话值
请从AJAX调用中获取会话值并设置为变量 我看到控制台中有一个错误。上面写了什么?你粘贴的代码和截图不一样。您确定运行时引用的代码相同吗?thushar。。这是css错误。。我们可以忽略它。迈克,代码是一样的。开发者工具显示了它的价值。这就是我认为它看起来不同的地方。我没有在这里列出一些属性来增加可读性。但它实际上在代码中,重新加载页面。我做到了。但同样的结果。