我有一个名为ValidarLogueo的函数,它将为普通用户返回0,为管理员用户返回1。我正试图做这样的事情,但它给了我一个糟糕的编译常量值错误。
<input id="Logueo" value="Login" class="btn btn-info btn-block" onclick="javascript:validarLogueo() == 0? @Url.Action('VistaViandasPersonal', 'Menu'): @Url.Action('VistaAdministrador', 'Menu')">
我现在正在我的.js中呈现这样的页面,但由于url保留在localHost而不是localHost / Menu
,这不是我需要的 $('body').load(url + '/Menu/VistaViandasPersonal');
我能做些什么来实现这个目标。提前谢谢。
答案 0 :(得分:1)
如果手动展开生成的代码,您将看到正在尝试注入字符串常量,但未包含分隔引号。在@Url.Action
来电时添加单引号。
e.g。
<input id="Logueo" value="Login" class="btn btn-info btn-block"
onclick="javascript:validarLogueo() == 0 ? '@Url.Action('VistaViandasPersonal', 'Menu')' : '@Url.Action('VistaAdministrador', 'Menu')'">
我强烈建议您转向使用jQuery事件处理程序,不要在jQuery中使用内联处理程序。当您需要根网站URL时,您的母版页可以将其注入全局变量
<script>
window.siteRoot = "@Url.Content("~")";
</script>
并简单地将其添加到jQuery代码中的任何URL。