67

我有一个带有按钮的视图。当用户单击按钮时,我希望他们重定向到数据输入视图。我该如何做到这一点?我应该提到视图是创建、测试和运行的。我可以通过输入网址找到他们。

我寻找解释如何连接按钮的 onclick 事件的步骤,但我是 MVC 的新手,在这一点上有点迷失。

谢谢!

4

11 回答 11

101

这取决于您所说的按钮是什么意思。如果是链接:

<%= Html.ActionLink("some text", "actionName", "controllerName") %>

对于发布,您可以使用以下表格:

<% using(Html.BeginForm("actionName", "controllerName")) { %>
    <input type="submit" value="Some text" />
<% } %>

最后,如果你有一个按钮:

<input type="button" value="Some text" onclick="window.location.href='<%= Url.Action("actionName", "controllerName") %>';" />
于 2010-07-02T19:30:41.263 回答
49

作为对其他答案的补充,这里是剃刀引擎语法:

<input type="button" value="Some text" onclick="@("window.location.href='" + @Url.Action("actionName", "controllerName") + "'");" />

或者

window.location.href = '@Url.Action("actionName", "controllerName")';
于 2014-01-15T16:30:36.883 回答
11

如果像我一样,您不喜欢依赖 JavaScript 来获取按钮上的链接。您还可以使用锚点并将其设置为使用 CSS 的按钮。

<a href="/Controller/View" class="Button">Text</a>
于 2010-07-02T19:40:12.250 回答
9

如果使用 JQuery,你可以这样做:

<script type="text/javascript">
    $('#buttonid').click(function () {
        document.location = '@Url.Action("ActionName","ControllerName")';
    });
</script>
于 2015-09-15T09:12:22.020 回答
4

根据我的经验,ASP MVC 真的不太喜欢传统的按钮使用方式。相反,我使用:

  <input type="button" class="addYourCSSClassHere" value="WordsOnButton" onclick="window.location= '@Url.Action( "ActionInControllerHere", "ControllerNameHere")'" />
于 2020-03-24T12:37:37.230 回答
3

或者,如果上述方法都不起作用,那么您可以使用以下方法,因为它对我有用。

想象一下这是你的按钮

<button class="btn" onclick="NavigateToPdf(${Id});"></button>

我使用 jquery 模板填充了 ${Id} 的值。您可以使用任何适合您的要求。在下面的函数中,我设置 window.location.href 等于控制器名称,然后是动作名称,最后是参数。我能够成功导航。

function NavigateToPdf(id) {
    window.location.href = "Link/Pdf/" + id;
}

我希望它有所帮助。

于 2012-09-16T21:18:14.327 回答
3

您可以使用 tag 轻松包装您的按钮标记。使用Url.Action() HTML Helper这将导航到一个页面到另一个页面。

<a href='@Url.Action("YourAction", "YourController")'>
    <input type='button' value='Dummy Button' />
</a>

如果您想使用 javascript onclick()函数导航,请使用

<input type='button' value='Dummy Button' onclick='window.location = "@Url.Action("YourAction", "YourController")";' />
于 2018-04-12T08:00:53.463 回答
0
$("#yourbuttonid").click(function(){ document.location = "<%= Url.Action("Youraction") %>";})
于 2010-07-02T19:32:52.757 回答
0
<li class="nav-item">
    <a class="nav-link text-dark" asp-area="" asp-page="/UsersPage">Users</a>
</li>

尝试这个

于 2020-05-26T15:42:39.623 回答
0

这里的正确答案:上面的答案是正确的(对于其中一些),但让我们简单点——用一个标签。

我更喜欢使用输入标签,但您可以使用按钮标签

以下是使用 HTML 的解决方案的外观:

< input type="button" class="btn btn-info" onclick='window.location.href = "@Url.Action("Index", "ReviewPendingApprovals", routeValues: null)"'/> // can omit or modify routeValues to your liking
于 2019-07-26T19:20:06.410 回答
0

如果您使用的引导程序是

@Html.ActionLink("Create A New Invoice", "Create", "Travel", null, new { @class = "btn btn-primary btn-large" })
于 2021-10-26T03:52:33.130 回答