Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.net WebForms-在标记中使用GetRouteUrl_C#_Asp.net_Webforms_Asp.net Routing - Fatal编程技术网

C# ASP.net WebForms-在标记中使用GetRouteUrl

C# ASP.net WebForms-在标记中使用GetRouteUrl,c#,asp.net,webforms,asp.net-routing,C#,Asp.net,Webforms,Asp.net Routing,我一直在试图找出如何在ASP.net 4.0 WebForms中使用路由功能。 我已将路线添加到我的路线集合: void Application_Start() { RegisterRoutes(RouteTable.Routes); } void RegisterRoutes(RouteCollection routes) { routes.MapPageRoute( "about-route", "about/", "~/Ab

我一直在试图找出如何在ASP.net 4.0 WebForms中使用路由功能。 我已将路线添加到我的路线集合:

void Application_Start()
{
    RegisterRoutes(RouteTable.Routes);
}

void RegisterRoutes(RouteCollection routes)
{
    routes.MapPageRoute(
        "about-route",
        "about/",
        "~/About.aspx"
    );
}
在我的母版页中,我尝试执行以下操作:

<asp:HyperLink ID="asdf" runat="server" NavigateUrl='<%= GetRouteUrl("about-route", new {}) %>'>Test</asdf>
<asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal">
    <Items>
        <asp:MenuItem NavigateUrl="ROUTE HERE" Text="Home"/>
        <asp:MenuItem NavigateUrl="ROUTE HERE" Text="About"/>
    </Items>
</asp:Menu>
我遇到一个编译器错误:服务器标记不能包含构造

在Web窗体的服务器控件中创建路由URL的正确方法是什么?我还需要将其包括在以下内容中:

<asp:HyperLink ID="asdf" runat="server" NavigateUrl='<%= GetRouteUrl("about-route", new {}) %>'>Test</asdf>
<asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal">
    <Items>
        <asp:MenuItem NavigateUrl="ROUTE HERE" Text="Home"/>
        <asp:MenuItem NavigateUrl="ROUTE HERE" Text="About"/>
    </Items>
</asp:Menu>

在标记中使用路由有一种特殊语法:

正确语法

<a href='<%$RouteUrl:routename=about-route %>' runat="server">Homepage</a>
你不想用那个。它容易受到XSS攻击,例如: