【问题标题】:Redirect from an asp.net mvc application to a .aspx file?从 asp.net mvc 应用程序重定向到 .aspx 文件?
【发布时间】:2017-12-12 00:14:58
【问题描述】:

我在 asp.net MVC 5 Web 应用程序中有一个按钮,我正在尝试将用户重定向到 .aspx 文件。 这样当用户从 asp.net MVC 中单击一个按钮(该按钮的代码是 HTML 格式)时,他将被重定向到一个 Web 表单 (.apsx)。 我试过这段代码,但它不起作用。

<button id="Login" runat="server" OnClientClick="window.open('Login.aspx', 'Login');">Login </button>

【问题讨论】:

    标签: c# asp.net button razor webforms


    【解决方案1】:

    你必须在你的 Action 方法中调用 .aspx 页面。

    public ActionResult Login()
        {
            return Redirect("~/Login.aspx");
        }
    

    【讨论】:

    • 我只是从asp.net开始,你能告诉我在哪里添加这段代码吗?我想把它加到一个按钮上。
    • 为什么一定要在服务器上?这可以在客户端上轻松完成。
    • 可以使用 Postbackurl
    • 不,你不能。 Razor 没有可以在服务器上运行的按钮的概念。很高兴您尝试提供帮助,但您需要先了解这些框架的具体功能,然后再尝试帮助其他人。
    • 感谢您的反馈,我试过了,但没有成功。我只想将按钮重定向到另一个 .aspx 页面。这怎么可能?我尝试查看不同的论坛,但没有任何效果。
    【解决方案2】:

    您的代码看起来不像 Razor View Code。 你可以通过多种方式做到这一点

    1.&lt;button onclick="window.open('Login.aspx')"&gt;Login&lt;/button&gt; 2. 使用剃刀

    <button onclick="location.href='@Url.Action("Login","Login")'">Login</button>
    

    谢谢 帕萨

    【讨论】:

    • 您不能使用 Url.Action 为 Web 表单页面生成 URL。不过你可以使用Url.Content
    【解决方案3】:
    <a href="@Url.Content("~/Login.aspx")">
      <button type="button">Login</button>
    </a>
    

    您可以在超链接中嵌入一个按钮,使其看起来像一个按钮,但工作起来却像一个链接。诀窍是正确设置 URL。在混合 Web 窗体/MVC 项目中,我使用 Url.Content 帮助程序,因为它尊重虚拟根。但是,您最好创建一个路由类。

    public class WebFormsRoutes
    {
        public const string LoginPage = "~/Login.aspx";
    }
    

    导入适当的命名空间后,您可以:

    <a href="@Url.Content(WebFormsRoutes.LoginPage)">
      <button type="button">Login</button>
    </a>
    

    您也可以考虑查看routing documentation。您可以注册自己的 Web 表单路由以获得更友好的 URL

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-29
      • 1970-01-01
      相关资源
      最近更新 更多