Существует ли ActionNameAttribute в ASP.NET MVC 3 для объявлений типов классов? - PullRequest
7 голосов
/ 27 июня 2011

Не могу себе представить, что этот вопрос еще не задавался ... хотя, я не могу его найти.

Итак, вот так: я много использовал ActionNameAttribute в своих методах действияв ASP.NET MVC 3. Например:

[ActionName("confirm")]
[HttpGet]
public ActionResult Confirm(string stuffTitle)
{
   ActionResult resultView = CreateSomeStuff(stuffTitle);
   return resultView;
}

Но как я могу сделать то же самое для классов?Вот так:

[ActionName("personal")]
public class AccountController : Controller

С ActionNameAttribute это возможно только для сокращений метода.Но я думаю, что это должно как-то быть возможно в объявлениях типов классов.Может быть, еще один атрибут, о котором я еще не слышал?Какой-то другой обходной путь?

Есть идеи?Заранее спасибо !!

Ответы [ 2 ]

6 голосов
/ 27 июня 2011

Мне действительно трудно понять, что вы после.Вы хотите изменить имя вашего контроллера или что-то?Если это так, используйте маршрут:

routes.MapRoute(
    "FooRoute",
    "foo/{action}/{action}/{id}",
    new { controller = "Account", action = "Index", id = UrlParameter.Optional }
);

Теперь все запросы к foo/someaction будут направлены на соответствующее действие контроллера Account.

0 голосов
/ 27 июня 2011

Контроллеры MVC содержат методы, которые могут отображаться в Действия.Итак, как говорит Дарин, какой цели он достигнет в классе?Сказать, что у этого класса есть действие «список», не поможет.Вы должны были бы также сказать, какой метод, не так ли?

Я нашел эту статью в блоге Фила Хаака, http://haacked.com/archive/2008/08/29/how-a-method-becomes-an-action.aspx.Я заранее прошу прощения, если вы уже прочитали это.Я думаю, что то, что он говорит, и некоторые последующие обсуждения могут помочь вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...