[英]ASP.net WebForms - Using GetRouteUrl in markup
我一直在尝试找出如何在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>
我收到一个编译器错误:服务器标记不能包含<%...%>构造。
在Web窗体的服务器控件中创建路由URL的正确方法是什么? 我还需要将其包括在以下内容中:
<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>
在标记中使用路由有一种特殊的语法: http : //msdn.microsoft.com/zh-cn/library/dd329551.aspx#Y800
<asp:MenuItem NavigateUrl='<%$RouteUrl:about-route%>' Text="About"></asp:MenuItem>
正确的语法
<a href='<%$RouteUrl:routename=about-route %>' runat="server">Homepage</a>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.