【问题标题】:ASP MVC Using Hyperlink ControlASP MVC 使用超链接控件
【发布时间】:2011-04-05 12:09:57
【问题描述】:

我有以下超链接控件:

<asp:HyperLink ID="hypTest" runat="server" NavigateUrl="~/Views/TestFolder/TestPage.aspx" >
    Text here
</asp:HyperLink>

但它没有找到该页面 - 尽管该页面确实存在。我得到的错误是:

Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable.  Please review the following URL and make sure that it is spelled correctly.

Requested URL: /Views/TestFolder/TestPage.aspx

我的猜测是波浪号 (~) 在这里不起作用。如果是这种情况,那么为什么,我该如何解决?

【问题讨论】:

    标签: asp.net asp.net-mvc hyperlink


    【解决方案1】:

    如果你使用 MVC,你应该使用 HtmlHelper.ActionLink 辅助函数。您目前正在使用网络表单超链接控件。假设您有默认路由,您应该可以使用

    <%=Html.ActionLink("Text here", "TestPage", "TestFolder")%>
    

    您当前收到 404 错误,因为默认情况下会阻止 ~/View 文件夹中的页面。您通常会通过~/TestFolder/TestPage 请求该页面。

    【讨论】:

    • 这是否意味着我需要一个专门用于这个视图的控制器(即一个 TestPage 控制器)?
    • 如果这是一个与控制器无关的独立页面,那么您应该将它移到 View 文件夹之外。如果您创建一个名为 TestFolder 的文件夹并添加 TestPage.aspx,它应该可以工作。如果文件存在于 url 位置,那么它将直接提供给客户端,并且不会通过路由和控制器。
    猜你喜欢
    • 2011-05-31
    • 1970-01-01
    • 2013-08-10
    • 1970-01-01
    • 2011-11-14
    • 2015-06-16
    • 2013-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多