【问题标题】:How to create a pop-up window in asp.net mvc?如何在asp.net mvc中创建一个弹出窗口?
【发布时间】:2009-08-28 20:21:26
【问题描述】:

不使用 javascript/AJAX。

当点击超链接时,它应该会打开一个新的浏览器窗口。

【问题讨论】:

    标签: asp.net-mvc model-view-controller browser popup hyperlink


    【解决方案1】:

    基本的 HTML 锚元素:

    <a href="http://www.w3schools.com/"
    target="_blank">Visit W3Schools!</a>
    

    ASP.NET WebForms 超链接元素:

    <asp:HyperLink ID="HyperLink1" runat="server" Target="_blank">HyperLink</asp:HyperLink>
    

    ASP.NET MVC 风格:

    <%= Html.ActionLink<HomeController>(c => c.Index(), "Click me", new { target = "_blank" }) %>
    

    三个都打开一个新标签,这是否适合您的需要?

    【讨论】:

    • 这是真的,但我只是想补充一点,您不想在 asp.net mvc 中使用 asp:hyperlink,请参阅 James S 的以下回答。
    • 当然,也可以通过 Html.ActionLink 项来完成。 - 更改我的评论以匹配它。
    【解决方案2】:

    如果您不使用 javascript,则需要使用 target="_blank"。但要以更清洁的 mvc 方式进行,请执行以下操作:

    <%= Html.ActionLink("Click me", "ActionName", null, new {target="_blank"}) %>
    

    【讨论】:

    • 比下面那个更干净点我
    • 这有点奇怪,但它是 asp.net mvc 的方式,你可以创建自己的助手等,你也可以在这里轻松地放入视图变量,而不是硬编码字符串.
    • 是的。有点奇怪。而且,不,它不干净。但是,ActionLink “知道”您的路线。因此,如果您的路线发生变化,则链接会更新。此外,在您将视图变量放在那里之后,它会跟踪变量名称,因此重构更容易,并且还会去除带有空值的参数(这很酷)。如果你强烈键入它,它甚至更适合编译时检查,但它看起来有点时髦 ((c => c.Action(var1, null, var3), "Click Me" , 新 {target="_blank"}); %>).
    • 哦。 Visual Studio 在 HTML 中的引号中的变量名存在问题,因此它不会在 之类的内容上自动完成。我曾经手动硬编码我所有的href,但我已经切换到强类型。
    【解决方案3】:

    如果您的问题是 - 我如何在 asp.net mvc 中创建弹出窗口

    简单的答案是:不能

    就此而言,您不能使用 PHP、JSP 或任何其他服务器端脚本语言。

    你注意到上面的解决方案都是HTML吗?

    弹出窗口是一个必须在客户端处理的域。服务器语言可以生成具有打开弹出窗口的命令的 HTML/Javsascript。他们本质上不能命令浏览器打开一个窗口。

    【讨论】:

      【解决方案4】:
      <A Href="page.html" target="_blank">Link text </A>
      

      target="_blank" 是您需要的特定部分。

      您也可以使用 target="new"。 Here's 一篇描述两者行为不同的文章。

      【讨论】:

        猜你喜欢
        • 2017-11-25
        • 2021-10-22
        • 1970-01-01
        • 1970-01-01
        • 2018-03-10
        • 2011-08-22
        • 2023-03-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多