我有一个带有按钮的视图。当用户单击按钮时,我希望他们重定向到数据输入视图。我该如何做到这一点?我应该提到视图是创建、测试和运行的。我可以通过输入网址找到他们。
我寻找解释如何连接按钮的 onclick 事件的步骤,但我是 MVC 的新手,在这一点上有点迷失。
谢谢!
我有一个带有按钮的视图。当用户单击按钮时,我希望他们重定向到数据输入视图。我该如何做到这一点?我应该提到视图是创建、测试和运行的。我可以通过输入网址找到他们。
我寻找解释如何连接按钮的 onclick 事件的步骤,但我是 MVC 的新手,在这一点上有点迷失。
谢谢!
这取决于您所说的按钮是什么意思。如果是链接:
<%= 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") %>';" />
作为对其他答案的补充,这里是剃刀引擎语法:
<input type="button" value="Some text" onclick="@("window.location.href='" + @Url.Action("actionName", "controllerName") + "'");" />
或者
window.location.href = '@Url.Action("actionName", "controllerName")';
如果像我一样,您不喜欢依赖 JavaScript 来获取按钮上的链接。您还可以使用锚点并将其设置为使用 CSS 的按钮。
<a href="/Controller/View" class="Button">Text</a>
如果使用 JQuery,你可以这样做:
<script type="text/javascript">
$('#buttonid').click(function () {
document.location = '@Url.Action("ActionName","ControllerName")';
});
</script>
根据我的经验,ASP MVC 真的不太喜欢传统的按钮使用方式。相反,我使用:
<input type="button" class="addYourCSSClassHere" value="WordsOnButton" onclick="window.location= '@Url.Action( "ActionInControllerHere", "ControllerNameHere")'" />
或者,如果上述方法都不起作用,那么您可以使用以下方法,因为它对我有用。
想象一下这是你的按钮
<button class="btn" onclick="NavigateToPdf(${Id});"></button>
我使用 jquery 模板填充了 ${Id} 的值。您可以使用任何适合您的要求。在下面的函数中,我设置 window.location.href 等于控制器名称,然后是动作名称,最后是参数。我能够成功导航。
function NavigateToPdf(id) {
window.location.href = "Link/Pdf/" + id;
}
我希望它有所帮助。
您可以使用 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")";' />
$("#yourbuttonid").click(function(){ document.location = "<%= Url.Action("Youraction") %>";})
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/UsersPage">Users</a>
</li>
尝试这个
这里的正确答案:上面的答案是正确的(对于其中一些),但让我们简单点——用一个标签。
我更喜欢使用输入标签,但您可以使用按钮标签
以下是使用 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
如果您使用的引导程序是
@Html.ActionLink("Create A New Invoice", "Create", "Travel", null, new { @class = "btn btn-primary btn-large" })