C# 路由,路由数据为空
我想登记两条路线 一个在/上,另一个在/details/{username} 在我的RouteConfig.cs中,我尝试了:C# 路由,路由数据为空,c#,asp.net,.net,asp.net-mvc,C#,Asp.net,.net,Asp.net Mvc,我想登记两条路线 一个在/上,另一个在/details/{username} 在我的RouteConfig.cs中,我尝试了: public static void RegisterRoutes(RouteCollection routes) { var settings = new FriendlyUrlSettings(); settings.AutoRedirectMode = RedirectMode.Permanent; routes.EnableFriendl
public static void RegisterRoutes(RouteCollection routes)
{
var settings = new FriendlyUrlSettings();
settings.AutoRedirectMode = RedirectMode.Permanent;
routes.EnableFriendlyUrls(settings);
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Details",
url: "details/{username}",
defaults: new { action = "Details", username = "" }
);
routes.MapRoute(
name: "Default",
url: "{controleur}",
defaults: new { action = "Index"}
);
}
在我的Details.aspx.cs中,我有:
public partial class _Details : Page
{
protected void Page_Load(object sender, EventArgs e)
{
var b = RouteData.Values.Keys.Count;
}
}
但是,我无法在RouteData中获取用户名值。这就是为MVC项目映射路线的方式。您似乎正在使用Web表单。 以下是如何映射Web表单的路由:
routes.MapPageRoute("Details",
"details/{username}",
"Details.aspx",
false,
new RouteValueDictionary {{"action", "Details"}, {"username", ""}});
默认路由是由Visualstudio生成的。。。我只是试着复制。。。我测试您的解决方案bug,我有一个例外:VirtualPath必须是非空的