【问题标题】:How do I redirect a user when a button is clicked?单击按钮时如何重定向用户?
【发布时间】:2011-03-11 06:15:51
【问题描述】:

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

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

谢谢!

【问题讨论】:

    标签: c# asp.net-mvc html-helper html.actionlink


    【解决方案1】:

    如果您使用的是引导程序,则可以添加引导程序类以使您的操作链接成为按钮

    @Html.ActionLink("Create A New Invoice", "Create", "Travel", null, new { @class = "btn btn-primary btn-large" })
    

    【讨论】:

      【解决方案2】:
      <li class="nav-item">
          <a class="nav-link text-dark" asp-area="" asp-page="/UsersPage">Users</a>
      </li>
      

      试试这个

      【讨论】:

        【解决方案3】:

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

          <input type="button" class="addYourCSSClassHere" value="WordsOnButton" onclick="window.location= '@Url.Action( "ActionInControllerHere", "ControllerNameHere")'" />
        

        【讨论】:

          【解决方案4】:

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

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

          您的解决方案使用 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
          

          【讨论】:

            【解决方案5】:

            您可以轻松地用标签包装您的按钮标签。使用 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")";' />
            

            【讨论】:

              【解决方案6】:

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

              <script type="text/javascript">
                  $('#buttonid').click(function () {
                      document.location = '@Url.Action("ActionName","ControllerName")';
                  });
              </script>
              

              【讨论】:

                【解决方案7】:

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

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

                window.location.href = '@Url.Action("actionName", "controllerName")';
                

                【讨论】:

                • 如何在此传递参数。请帮助
                • '@Url.Action("actionName", "controllerName", new { myparam = "blabla" })'
                【解决方案8】:

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

                想象一下这是你的按钮

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

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

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

                希望对你有帮助。

                【讨论】:

                  【解决方案9】:

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

                  <a href="/Controller/View" class="Button">Text</a>
                  

                  【讨论】:

                    【解决方案10】:

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

                    <%= 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控制器?
                    【解决方案11】:
                    $("#yourbuttonid").click(function(){ document.location = "<%= Url.Action("Youraction") %>";})
                    

                    【讨论】:

                      猜你喜欢
                      • 2016-03-18
                      • 2021-10-22
                      • 1970-01-01
                      • 1970-01-01
                      • 2019-04-21
                      • 1970-01-01
                      • 2017-02-05
                      • 1970-01-01
                      • 2011-07-08
                      相关资源
                      最近更新 更多