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

标签 javascript c# jquery asp.net-mvc

我在 Controller 的构造函数中初始化一个属性。

public BookController()
{
  SessionProvider.SessionLoadSceanrio = false;
}

我有一个操作方法,可以在按钮单击事件时再次重置属性。

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

以下 javascript 代码在我的 View 中,单击按钮时将调用它。

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 () {
                        }
                    });

                });
}

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

ScreenCapture

有人知道吗?

最佳答案

您正在使用 Razor 语法。然后最初加载页面,设置值,这些值是字符串,不再是变量。那么您将无法再次更新 session 值。

请从 AJAX 调用中获取 session 值并将其设置为您的变量。

关于javascript - C# 属性值不会在 Javascript/jquery 中被修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31334390/

相关文章:

JavaScript 正则表达式 : successive matches

c# - 带有更新面板的 jquery

c# - 在 c# 中成为 unity 3d 对象的子对象

jquery - 通过api和Jquery事件显示/隐藏模式时启动/停止youtube iframe

jquery - 如何知道我点击了哪个 div 来更改它的内容?

c# - 将 C# ASPX 转换为 Handlebars 模板

php - 如何将动态生成的 <tr> 发送到下一页

javascript - 学习更高级的 JavaScript

c# - 方法参数内的变量赋值

jquery - 单击按钮后如何向上滚动页面?