您好我在我的asp.net mvc 4应用程序中使用区域我有多个区域,我正在从一个区域导航到另一个区域,如何从Url中删除区域名称,如下所示:
... / AreaName / ControllerName / ActionName To ... / ControllerName / ActionName
例如:
"ActionLink("Text","ActionNAme","ControllerName",new{area = "area name"},null)"
有时我会在某个特定过程之后重定向到其他区域内的某个视图:
"ReturnRedirectToAction("Text","ActionName","ControllerName",new{area ="areaName"}, null)"
像这样一切正常,但我不希望AreaName出现在Url中。
这是AreaRegistration类:
public class ChileAreaAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "ChileArea";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"ChileArea_default",
"ChileArea/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
}
答案 0 :(得分:0)
如果你想完全摆脱一个或多个控制器的Area部分 - 意味着它/它们不再属于某个区域,那么你将不得不移动 * Controller.cs +对应视图和模型,以及可能相应的 DisplayTemplates / EditorTemplates ,进入控制器/视图/模型文件夹在项目的根本。
如果您使用的是VisualStudio,则可以使用drag-n-drop进行此操作。
为了清晰度和一致性,最好还为每个移动的.cs
文件调整名称空间,并相应地调整所有using
。
答案 1 :(得分:0)
将此装饰器放在控制器定义
[RouteArea("AreaName", AreaUrl = "")]