0
問:我想我的路線是這樣的MVC3地區衝突路由
/管理/主類別/ 1/- > 1 ==頁= 1 我不想頁= 1可以看出?
我的控制器
public class MainController : BaseController
{
private const int PageSize = 5; //pager view size
[Inject]
public ICategoryRepository CategoryRepository { get; set; }
public ActionResult Index()
{
return View();
}
public ActionResult Category(int page)
{
//int pageIndex = page.HasValue ? page.Value : 1;
int pageIndex = page != 0 ? page : 1;
return View("Category", CategoryViewModelFactory(pageIndex));
}
/*
*Helper: private instance/static methods
======================================================================*/
private CategoryViewModel CategoryViewModelFactory(int pageIndex) //generate viewmodel category result on pager request
{
return new CategoryViewModel
{
Categories = CategoryRepository.GetActiveCategoriesListDescending().ToPagedList(pageIndex, PageSize)
};
}
}
public class AdminAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "admin";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRouteLowercase(
"AdminCategoryListView",
"admin/{controller}/{action}/{page}",
new { controller = "Category", action = "Category", page = "1" },
new { id = @"\d+" },
new[] { "WebUI.Areas.Admin.Controllers" }
);
}
}
My Exception:
參數字典包含參數「頁」非空類型「System.Int32」的 爲方法 「System.Web.Mvc.ActionResult℃的空條目(Int32)' 'WebUI.Areas.Admin.Controllers.MainController'。可選參數 必須是引用類型,可爲空類型,或者聲明爲 可選參數。參數名稱:參數
謝謝大家提前。
+1謝謝你的工作,但我可以有多個「路線註冊」? – IamStalker
您可以有任意數量的路由註冊。你只需要確保它們沒有衝突,並且路由引擎能夠始終消除歧義。例如,如果你有以下2個URL:'Admin/{controller}/{action}/{page}'和'Admin/{controller}/{action}/{id}',給一個URL如'/ admin /主/類/ 5「路由引擎無法消除這兩條路由之間的歧義,並且會明顯地選擇第一條路由。 –
我已經使用默認測試了您的路線建議,並且在我刪除了默認路線後它沒有工作,它確實有效。 – IamStalker