如何在MVC项目中使用jquery单击按钮重定向回到起始页面?

时间:2017-09-26 23:22:04

标签: jquery asp.net-mvc

我有一个按钮,将用户引导到一个名为Report的视图,在该Report视图中我有一个取消按钮,当我点击它时,我需要它让我回到第一页,即Home / Index 。当我点击按钮时,它确实将我带回Home / Index,但是当我点击按钮返回到报告视图时,我得到一个关于资源无法找到的错误,当我查看地址栏时,我有/ Home / FileAReport / Report,这是不正确的,它在文件上的一个报告按钮点击事件,它假设转到FileAReport / Report。 将我带回主页/索引视图的代码是

$('#CancelFAR').on('click', function () {
    window.location.href = '/Home/Index/'
});

现在,当我单击取消按钮然后单击FileAReport按钮时,为什么地址现在为Home / FileAReport / Report?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

当我不熟悉MVC时,我也有同样的困惑。这一切都取决于当前网址的内容。 Razor有几种方法可以根据当前页面生成确切的路径。生成链接的方法之一如下:

@Html.Action("Action", "Controller")

在你的情况下,它会像

@Html.Action("Report", "FileAReport")

此函数生成html链接或<a>标记。您可以检查重载以获得更多功能。但是这种方式并不建议,因为它隐藏了代码中的html代码。您可以改为使用@Url.Action@Url.Content来执行相同操作。如果您使用@Url.Action,则可以像上面的示例一样提及操作和控制器。 @Url.Content可以帮助您从根生成任何网址:

<a href="@Url.Content("~/FileAReport/Report")" >My link</a>

这清楚地向任何人显示它是一个链接/ anchortag。我不确定你为什么使用div而不是链接标签,但如果是因为外观,你总是可以使用css使它看起来像你喜欢。但是,如果你确实需要javascript中的实际网址,你可以在你的剃刀文件中声明如下内容:

<script>
    var reportUrl = "@Url.Content("~/FileAReport/Report")";
</script>

然后您可以在js文件中使用reportUrl变量。因此,您可以看到Url.Content功能可以在剃刀内的任何地方使用。