私は一日中混乱しています。私はエリア内のルーティングを持っており、このように見えます。エリアと異なるパラメータのルーティング、誤解
public class AdminAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "admin";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRouteLowercase(null, "Account/{action}",
new {controller = "Account"},
new {action = @"LogOff|LogOn|Create|Update|Delete|List"},
new[] {"WebUI.Areas.Admin.Controllers"});
context.MapRouteLowercase(//this works
"AdminUpdateCategoryView",
"admin/{controller}/{action}/{cid}",
new {area = "admin", controller = "Main", action = "UpdateCategory", cid = ""},
new {cid = @"\d+"},
new[] {"WebUI.Areas.Admin.Controllers"}
);
context.MapRouteLowercase(//this not works
"AdminCategoryListView",
"admin/Main/{action}/{page}",
new { action = "Category", page = "1" },
new {page = @"\d+"},
new[] {"WebUI.Areas.Admin.Controllers"}
);
context.MapRouteLowercase(
"Admin_Default", // Route name
"admin/{controller}/{action}/{id}", // URL with parameters
new {controller = "Category", action = "Index", id = UrlParameter.Optional} // Parameter defaults
);
}
}
私が書いたものを作品とするものではないが、それらの間の変化、動作し、動作する他は、動作しない動作しないものか?
例:ここでは
first case-> /admin/main/updatecategory/1 --> works /admin/main/category/1 --> not works result: /admin/main/category/1?page=1 second case-> /admin/main/category/1 --> works /admin/main/updatecategory/1 --> not works result: /admin/main/updatecategory/1?cid=1
は私のコントローラのアクションです:
public ActionResult Category(int? page)
{
int pageIndex = page.HasValue ? page.Value : 1;
return View("Category", CategoryViewModelFactory(pageIndex));
}
public ActionResult CreateCategory()
{
return View();
}
public ActionResult UpdateCategory(int cid)
{
return View();
}
public ActionResult DeleteCategory(int? cid)
{
return View();
}
この問題とどのようにそれを解決するためには何ですか?
私は完全に混乱しています。ASP.MVC3のルーティングはe-logicalです。
ヘルプ?