我有一个区域寄存器路由:
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"MyArea_default",
"MyArea/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new string[] { "market.Areas.MyArea.Controllers" }
);
}
它是这样工作的,没关系:
本地主机:MyArea / ActionName
但是在选择特定视图时,我打了F5键(在Visual Studio中),然后网址是:
本地主机:MyArea / Home / ActionName
因此,如果选择了特定视图,当我按f5键时,如何在URL中没有控制器名称的情况下工作?
答案 0 :(得分:0)
有很多解决方案,其中最简单的就是可以使用服装路线属性
答案 1 :(得分:0)
我从您的代码中了解的内容
localhost:MyArea / ActionName =>将使用带ActionName方法的homeControllerClass。
localhost:MyArea / Home / ActionName =>将不起作用,因为它使用homeControllerClass但ActionName为“ Home”!那就是在homeControllerClass中寻找home方法。
从您的代码中: “ MyArea / {action} / {id}” 新建{控制器=“主页”,操作=“索引”,id = UrlParameter.Optional}
=>如果未指定任何动作,则意味着将homecontroller类用于具有默认动作名称index的MyArea请求。 因此,如果您使用MyArea / Home =>,它将使用homeController但动作为“ Home”。
{Controller} / {Action}