有人可以告诉我如何使用 MapRoute 方法吗?我尝试过创建自己的路线,但它不起作用。我想要完成的是将“http://servername/home/default.aspx”路由到控制器“Home”和操作“Default”的路由。此外,是否可以说如果用户正在浏览 default.aspx“文件”,它实际上会指向“索引”操作?
我曾尝试阅读 MSDN 参考资料并进行谷歌搜索,但这并没有让我变得更聪明。
有人可以告诉我如何使用 MapRoute 方法吗?我尝试过创建自己的路线,但它不起作用。我想要完成的是将“http://servername/home/default.aspx”路由到控制器“Home”和操作“Default”的路由。此外,是否可以说如果用户正在浏览 default.aspx“文件”,它实际上会指向“索引”操作?
我曾尝试阅读 MSDN 参考资料并进行谷歌搜索,但这并没有让我变得更聪明。
帮助提出问题但可能会帮助其他人的开发人员可能为时已晚。MVC 的新手,但我发现地图路线似乎是按照它们添加的顺序处理的。我遇到了类似的问题,直到我开始将默认路由添加为最后一条路由,我的特定路由才起作用。
如果在您的自定义路线之前添加了默认地图路线,并且您的自定义 URL 与默认地图路线定义的结构相匹配,您将永远无法到达您的自定义路线。
您要配置问题第一部分的路线是:
routes.MapRoute(
"",
"home/default.aspx",
new { controller = "Home", action = "Default" }
);
假设您希望使用某种参数“浏览”default.aspx,您可以执行以下操作:
routes.MapRoute(
"",
"home/default.aspx/{param}",
new { controller = "Home", action = "Default", param = UrlParameter.Optional }
);
然后您需要创建默认操作以接受字符串参数。
您还必须确保参数名称与操作的参数名称相同。例子:
routes.MapRoute(
name: "MyName",
url: "{controller}/{action}/{myParam}",
defaults: new { controller = "MyController", action = "MyAction", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
我的控制器:
public ActionResult MyAction(string myParam = "")
{
}