2017-10-12 83 views
3

这可能已经在某个地方得到了解答,但我无法找到任何对我有意义的信息。在Javascript中导航到Url或Url.Action

我有一个CSHTML包含HREF =“@ Url.Action( ”指数“)取消按钮。它看起来像这样:

<a href='@Url.Action("Index")' class="linkbutton" id="btnCancel" title="Return to Home Page">Cancel</a> 

现在,如果已作出更改,我需要确认是离开页面还是在离开前保存更改。

所以,我在按钮上添加了一个事件点击来呈现一个弹出来确认是否继续或保存。当然,将按钮代码保留在cshtml文件中,就像预期的一样。这是一个链接,我的事件永远不会发生。

我改变了CSHTML按钮下面的代码:

<input type="button" class="navigationButtons" id="btnCancel" value="Cancel" title="Return to Home Page" /> 

现在,我的事件被解雇,我显示我的弹出确认继续或保存。 保存工程很好,因为它是另一种执行保存到数据库的方法。 我无法将确认按钮变为链接按钮,因为它在代码中的其他位置使用,只是在不离开页面的情况下继续。

我已经找到答案了window.location的$不用彷徨$就。但我无法弄清楚如何将JavaScript代码放入我的索引页面。

请!有谁知道如何做到这一点,并帮助我了解我显然不知道的事情。 :-(

+1

只是处理链接。点击'()'事件,显示弹出式窗口,如果其取消,则取消链接的默认操作 –

回答

2

只要你的JavaScript包含在您.cshtml文件,你可以写代码剃刀你的脚本里面:

window.location.replace('@Url.Action("Index")'); 

如果您遇到麻烦,你可以尝试创建一个hidden链接您的网页上,并为你的JavaScript触发点击:

<a id="my-hidden-url" href="@Url.Action("Index")" hidden></a> 

<script> 
    $('#my-hidden-url').trigger('click'); 
</script> 
+0

的JavaScript是一个单独的文件。我'我不知道这会对我有用,除非我改变我的策略。 – Patricia

+1

如果你想保持你的JS分离,你不必使用'Url Helper.'如果你确信URL会保持稳定,你可以在'replace()'函数中对它进行硬编码。 –

+0

也许我需要学习如何使用window.location.replace,因为它所做的其他事情都是一样的。没有!我正在研究它。 : - \ – Patricia