在 Razor 调用我的 HTML Helper 之前调用 Javascript 函数
Call Javascript Function before Razor calls my HTML Helper
我一直在研究 HTML 助手,它会根据您的用户类型隐藏或显示菜单项。
出于这个原因,在我的一个控制器中,我设置了一个会话变量,其值例如 "ADMIN"
context.Session["perfil"] = "ADMIN"
我面临的问题是在调用设置会话变量的控制器的 Javascript 函数之前调用了 Helper 函数
这就是我调用 HtmlHelper 的方式(通过 Razor)
@using XSiteManagerWeb.Helpers
@Html.Raw(Html.MiMenu("../Home/Configuracion", "Configuración"))
来自我的_Layout.cshtml
但在这之前我调用函数
<script type="text/javascript">ObtenerDatosSesion();</script>
其中通过Ajax调用Controler方法
...
$.ajax({
url: "../Home/ObtenerDatosSesion",
....
问题: 为什么 HtmlHelper 在 ObtenerDatosSesion();
之前被调用,即使我已经把它放在 _Layout.cshtml 之前?
我也试过调用 window 负载这样做:
<body class="Fondoblue" onload="ObtenerDatosSesion();">
以及其他方法。
我注意到在多次调试之后每次都会调用Helper。我不明白为什么会这样。
我想知道它是否与必须使用 html helpers
的 Web.config 行有关
<add namespace="XSiteManagerWeb.Helpers"/>
所以为了清楚起见,我只想让我的 "ObtenerDatosSesion();
方法在我的 html 助手之前被调用!
razor 助手在服务器端执行,因此它们将在之前 页面上的任何 JS rendered/executed 执行。
我建议将 ../Home/ObtenerDatosSesion
端点中的任何逻辑移动到与 ../Home/Configuracion
相同的端点。如果要多次调用,可以放在自己的方法中。
我一直在研究 HTML 助手,它会根据您的用户类型隐藏或显示菜单项。
出于这个原因,在我的一个控制器中,我设置了一个会话变量,其值例如 "ADMIN"
context.Session["perfil"] = "ADMIN"
我面临的问题是在调用设置会话变量的控制器的 Javascript 函数之前调用了 Helper 函数
这就是我调用 HtmlHelper 的方式(通过 Razor)
@using XSiteManagerWeb.Helpers
@Html.Raw(Html.MiMenu("../Home/Configuracion", "Configuración"))
来自我的_Layout.cshtml
但在这之前我调用函数
<script type="text/javascript">ObtenerDatosSesion();</script>
其中通过Ajax调用Controler方法
...
$.ajax({
url: "../Home/ObtenerDatosSesion",
....
问题: 为什么 HtmlHelper 在 ObtenerDatosSesion();
之前被调用,即使我已经把它放在 _Layout.cshtml 之前?
我也试过调用 window 负载这样做:
<body class="Fondoblue" onload="ObtenerDatosSesion();">
以及其他方法。
我注意到在多次调试之后每次都会调用Helper。我不明白为什么会这样。
我想知道它是否与必须使用 html helpers
的 Web.config 行有关<add namespace="XSiteManagerWeb.Helpers"/>
所以为了清楚起见,我只想让我的 "ObtenerDatosSesion();
方法在我的 html 助手之前被调用!
razor 助手在服务器端执行,因此它们将在之前 页面上的任何 JS rendered/executed 执行。
我建议将 ../Home/ObtenerDatosSesion
端点中的任何逻辑移动到与 ../Home/Configuracion
相同的端点。如果要多次调用,可以放在自己的方法中。