Я просматриваю каркас Pro Asp.net mvc3. Я хочу изменить маршрут по умолчанию, чтобы у меня была другая домашняя страница. Я добавил новый контроллер под названием «Страницы» и представление «Главная». Это то, что я хочу, как свою домашнюю страницу.mvc Как изменить маршрут по умолчанию
Я попытался добавив в мой Global.asax.cs
routes.MapRoute("MyRoute", "{controller}/{action}/{id}",
new { controller = "Pages", action = "Home", id = "DefautId" });
Это изменяет страницу по умолчанию, но он щурит в категории
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(null,
"", // Only matches the empty URL (i.e. /)
new
{
controller = "Product",
action = "List",
category = (string) null,
page = 1
}
);
routes.MapRoute(null,
"Page{page}", // Matches /Page2, /Page123, but not /PageXYZ
new {controller = "Product", action = "List", category = (string) null},
new {page = @"\d+"} // Constraints: page must be numerical
);
routes.MapRoute(null,
"{category}", // Matches /Football or /AnythingWithNoSlash
new {controller = "Product", action = "List", page = 1}
);
routes.MapRoute(null,
"{category}/Page{page}", // Matches /Football/Page567
new {controller = "Product", action = "List"}, // Defaults
new {page = @"\d+"} // Constraints: page must be numerical
);
routes.MapRoute(null, "{controller}/{action}");
}
Что я должен сделать, чтобы сделать это Работа?
UPDATE:
URLS: Главная страница идет к списку пунктов
http://localhost/SportsStore/
щелкнул категории
http://localhost/SportsStore/Chess?contoller=Product
контроллер, который ударил для домашней страницы
public class ProductController : Controller
{
private readonly IProductRepository repository;
public int PageSize = 4;
public ProductController(IProductRepository repoParam)
{
repository = repoParam;
}
public ViewResult List(string category, int page = 1)
{
var viewModel = new ProductsListViewModel
{
Products = repository.Products
.Where(p => category == null || p.Category == category)
.OrderBy(p => p.ProductID)
.Skip((page - 1)*PageSize)
.Take(PageSize),
PagingInfo = new PagingInfo
{
CurrentPage = page,
ItemsPerPage = PageSize,
TotalItems = category == null
? repository.Products.Count()
: repository.Products.Where(
e => e.Category == category).Count()
},
CurrentCategory = category
};
return View(viewModel);
}
контроллер, что я хотел ударить для домашней страницы
public class PagesController : Controller
{
public ViewResult Home()
{
return View();
}
}
спасибо,
+1 Можете ли вы привести пример Url для маршрутов Route? .MapRoute (null, "", new {controller = "Pages", action = "Home"}); ' –