我有一个名为 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');
我能做些什么来实现这个目标吗?提前致谢。
最佳答案
如果您手动扩展生成的代码,您将看到您正在尝试注入(inject)字符串常量,但未包含分隔引号。在 @Url.Action
调用周围添加单引号。
例如
<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 时,可以通过母版页将其注入(inject)全局变量
<script>
window.siteRoot = "@Url.Content("~")";
</script>
只需将其添加到 jQuery 代码中的任何 URL 前面即可。
关于javascript - 使用 javascript 调用元素内的部分 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31728827/