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