Районы и маршруты - PullRequest
       12

Районы и маршруты

0 голосов
/ 23 октября 2009

Я использую области повсюду, и я хочу что-то вроде следующего:

http://localhost/MyArea/MySection/MySubSection/Delete/20

Обычно я обращаюсь к вещам, выполняя следующие действия:

http://localhost/MyArea/MySection/MySubSection/20

Но если я хочу удалить, я должен сказать

http://localhost/MyArea/MySection/DeleteEntryFromMySubSection/20

С маршрутами, как ты это делаешь? (кстати, маршруты не реалистичны, они гораздо более кратки, чем в моей системе)

РЕДАКТИРОВАТЬ : Это конкретно связано с использованием Области, функции ASP.NET MVC 2 Preview 2.

1 Ответ

0 голосов
/ 23 октября 2009

Это будет зависеть от того, как ваши маршруты и контроллеры в настоящее время структурированы.

Вот пример маршрута, который вы можете использовать.

Если вы хотите вызвать следующий маршрут для удаления:

http://localhost/MyArea/MySection/MySubSection/Delete/20

И давайте предположим, что у вас есть контроллер с именем «MyAreaController» с действием «Удалить», и для простоты давайте предположим, что раздел и подраздел - это просто строки, например:

public class MyAreaController : Controller
{
    public ActionResult Delete(string section, string subsection, long id)
    {

Тогда вы можете создать маршрут следующим образом (в вашем Global.asax.cs или там, где вы определяете свои маршруты):

var defaultParameters = new {controller = "Home", action = "Index", id = ""};            

routes.MapRoute("DeleteEntryFromMySubSection", // Route name - but you may want to change this if it's used for edit etc.
            "{controller}/{section}/{subsection}/{action}/{id}", // URL with parameters
            defaultParameters   // Parameter defaults
            );

Примечание. Обычно я определяю перечисления для всех возможных значений параметров. Тогда параметры могут иметь соответствующий тип enum, и вы все равно можете использовать строки на своем пути. Например. У вас может быть перечисление «Section» со значением «MySection».

...