在Razor调用我的HTML帮助器之前调用Javascript函数
问题描述:
我一直在研究一个HTML帮助器,它将隐藏或显示菜单项,具体取决于您是什么类型的用户。在Razor调用我的HTML帮助器之前调用Javascript函数
出于这个原因,在我的控制器中的一个,我设置与值的会话变量,如“ADMIN”
context.Session["perfil"] = "ADMIN"
我现在面临的问题是,辅助函数被Javascript函数之前调用这就要求,设置会话变量
控制器这是我打电话给我的HtmlHelper(通过剃刀)
@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之前?
我也打过电话在窗口负荷这样做:
<body class="Fondoblue" onload="ObtenerDatosSesion();">
等方法。
我注意到Helper在每次调试之前都会被调用。我无法弄清的是为什么会发生这种情况。
我不知道这有什么用web.config行人们必须投入使用HTML辅助
<add namespace="XSiteManagerWeb.Helpers"/>
所以要清楚,我只想让我的"ObtenerDatosSesion();
方法被调用在我的html帮手之前!
答
剃刀助手执行服务器端,因此他们将被执行之前任何JS在页面上呈现/执行。
我建议将../Home/ObtenerDatosSesion
端点中的任何逻辑移动到与../Home/Configuracion
相同的端点。如果它不止一次被调用,你可以使用它自己的方法。
*他们将**总是**之前执行...... * – 2015-03-31 16:53:02
这就是我需要知道的。 – 2015-03-31 20:12:07