在Javascript / jquery中不会修改C#属性值

前端之家收集整理的这篇文章主要介绍了在Javascript / jquery中不会修改C#属性值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在Controller的构造函数中初始化一个属性.
  1. public BookController()
  2. {
  3. SessionProvider.SessionLoadSceanrio = false;
  4. }

我有一个Action方法,它在按钮单击事件上再次重置属性.

  1. public ActionResult LoadScenario(int bookId)
  2. {
  3. SessionProvider.SessionLoadSceanrio = true;
  4. // remaining code
  5. return Json(ScenarioId,JsonRequestBehavior.AllowGet);
  6. }

以下javascript代码在我的视图中,单击按钮时会调用代码.

  1. var BookHandler = {
  2. $("#btnLoadScen").click(function (e) {
  3. $.ajax({
  4. url: "@Url.Action("LoadScenario","Book")",dataType: 'json',type: 'POST',data: {
  5. 'bookId': BookHandler.getBookId()
  6. },success: function (response) {
  7. var scenarioId = response;
  8. var isLoadScenario = "@Portal.Presentation.Web.Planning.MVC.App_Start.SessionProvider.SessionLoadSceanrio";
  9. //otherproperties
  10. window.open("@Url.Action("Index","BookScenario",new {loadScenario = "_loadScenario"}).replace('_loadScenario',isLoadScenario),tabId);
  11.  
  12. },error: function () {
  13. }
  14. });
  15.  
  16. });
  17. }

我的问题是当我单击按钮时,Controller中的属性值更改.但它在我的javascript代码中没有变化.请参阅开发人员工具的屏幕截图.

有没有人对此有所了解?

解决方法

您正在使用剃刀语法.然后最初页面加载,设置值,这些值是字符串,而不是变量.那么你不能再次更新会话值.

请从AJAX调用获取会话值并设置为您的变量.

猜你在找的jQuery相关文章