2013-08-04 3 views
0

В настоящее время у меня есть контроллер, который называется (Управление). Я хочу, чтобы у него были такие ссылки, какНесколько действий в контроллере

Manage/Users/{userid}/{manageType} 
Manage/Pages/{pageid}/{manageType} 

Если действие manageType может быть (Настройки, Имя пользователя, Описание).

Каков наилучший способ структурирования этого в моем диспетчере управления, чтобы я мог иметь все эти атрибуты? Возможно ли, что существует несколько функций действий, которые были в рамках других действий? Например,

ManageController 
-> viewResult Users(int userID) 
-> viewResult Pages(int pageID) 
-> viewResult Type(string typeID) 

Если пользователи и страницы указывают тип после того, как он получает идентификаторы из ссылки.

ответ

2

«Возможно ли, чтобы функции нескольких действий выполнялись в рамках других действий?» Как это будет работать? Методы действий - это просто обычные методы .NET. Действия в действиях на самом деле не имеют смысла.

Если вы хотите, чтобы все это в одном контроллере, вы должны иметь что-то вроде этого:

public ActionResult UserSettings(int userid) { /*...*/ } 
public ActionResult UserName(int userid) { /*...*/ } 
public ActionResult UserDescription(int userid) { /*...*/ } 
public ActionResult PageSettings(int userid) { /*...*/ } 
public ActionResult PageName(int userid) { /*...*/ } 
public ActionResult PageDescription(int userid) { /*...*/ } 

Вы можете телеграфировать маршрутизации, как это:

routes.MapRoute(
       name: "Default", 
       url: "Manage/Users/{userid}/Settings", 
       defaults: new { controller = "Manage", action = "UserSettings" }, 
       constraints = new { userid = @"\d+" } 
      ); 

и т.д.

+0

Так Я могу в основном сделать что-то вроде: http://pastebin.com/wXPevXr1 –

+0

Вы могли бы сделать что-то подобное, но вы не указали идентификатор пользователя, поэтому он больше не является частью URL-адреса, и ограничения не имеют никакого эффекта. Если вы хотите, чтобы идентификатор пользователя передавался как параметр запроса, то то, что у вас есть, в порядке, хотя ограничения не будут работать – Rune

Смежные вопросы