我尝试在mvc 4中使用区域但是路由配置无法正常运行错误找不到资源" / UserAdmin / Menu / MenuPermissions"
我创建了两个名为" UserAdmin"和#34;硕士"。 我的主页已放置在根控制器中,请帮助我访问区域视图
我的代码是
RouteConfig.cs
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
AreaRegistration.RegisterAllAreas();
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Login", action = "LoginPage", id = UrlParameter.Optional },
namespaces: new[] { "SRR.Controllers" }
);
}
UserAdminAreaRegistration.cs
public class UserAdminAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "UserAdmin";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"UserAdmin_default",
"UserAdmin/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
}
在视图页面中调用
<a href="~/UserAdmin/Menu/MenuPermissions"> </a>
菜单控制器
public class MenuController : Controller
{
//
// GET: /UserAdmin/Menu/
readonly MenuClass _menu = new MenuClass();
public ActionResult MenuPermissions()
{
Session["username"] = "1001";
if (Session.Count == 0)
{
return RedirectToAction("");
}
else
{
List<Menu> menuList = new List<Menu>();
menuList = _menu.GetAllMenuItems();
return View(menuList);
}
}
}
提前致谢
答案 0 :(得分:1)
根据您的代码,
public class MenuController : Controller
{
//
// GET: /Menu/
readonly MenuClass _menu = new MenuClass();
public ActionResult MenuPrivilages()
{
Session["username"] = "1001";
if (Session.Count == 0)
{
return RedirectToAction("");
}
else
{
List<Menu> menuList = new List<Menu>();
menuList = _menu.GetAllMenuItems();
return View(menuList);
}
}
}
您的链接应为<a href="~/UserAdmin/Menu/MenuPrivilages"> </a>
而不是<a href="~/UserAdmin/Menu/MenuPermissions"> </a>
您的结构应如下所示
答案 1 :(得分:1)
将您的RgisterArea更改为以下
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"UserAdmin_default",
"UserAdmin/{controller}/{action}/{id}",
new { controller="Menu" action = "MenuPermissions", id = UrlParameter.Optional }
);
}
让我知道它是否有效?