ASP.NET MVC: помощь в маршрутизации - PullRequest
1 голос
/ 25 марта 2010

Рассмотрим два метода на контроллере CustomerController.cs:

//URL to be http://mysite/Customer/
public ActionResult Index()
{
    return View("ListCustomers");
}

//URL to be http://mysite/Customer/8
public ActionResult View(int id)
{
    return View("ViewCustomer");
}
  • Как бы вы настроили свои маршруты для удовлетворения этого требования?
  • Как бы вы использовали Html.ActionLink при создании ссылки на страницу просмотра?

1 Ответ

1 голос
/ 25 марта 2010

В global.asax.cs добавьте следующее (предположим, вы используете шаблон mvc visual studio по умолчанию)

Route.MapRoute("Customer",
    "Customer/{id}",
    new { Controller = "CustomerController", action="View", id="" });

Убедитесь, что вы указали этот маршрут перед маршрутом по умолчанию в шаблоне

Затем вам нужно изменить свой контроллер. Для просмотра

public ActionResult View(int? id)
{
    if (id == null) 
    {
        return RedirectToAction("Index"); // So that it will list all the customer
    }
    //...The rest follows
}

По вашему второму вопросу, ActionLink прост.

Html.ActionLink("Link Text", "View", "Customer", new {id=1}, null);
...