88 votes

Le but de ActionName

Quel est l'avantage de la définition d'un alias pour une méthode d'action à l'aide de la "ActionName" attribut? Je ne vois vraiment pas beaucoup d'avantages, en offrant à l'utilisateur la possibilité d'appeler une méthode d'action avec un autre nom. Après spécifier l'alias, l'utilisateur est en mesure d'appeler la méthode d'action uniquement à l'aide de l'alias. Mais si c'est nécessaire, alors pourquoi ne pas l'utilisateur de changer le nom de la méthode de l'action, plutôt que de spécifier un alias pour elle?

J'apprécierais vraiment si quelqu'un peut me donner un exemple de l'utilisation de "ActionName" dans un scénario où il peut offrir de grands bénéfices ou il est préférable d'utiliser.

136voto

BuildStarted Points 15931

Il vous permet de lancer votre action auprès d'un nombre ou d'inclure n'importe quel caractère .net ne permet pas à un identificateur. - C'est probablement la seule raison qu'il existe.

Par exemple: vous pourrez vous permettre de tirets dans votre url, le nom de l'action http://example.com/products/create-product vs http://example.com/products/createproduct ou http://example.com/products/create_product.

public class ProductsController {

    [ActionName("create-product")]
    public ActionResult CreateProduct() {
        return View();
    }

}

62voto

Carlos Muñoz Points 6208

Il est également utile si vous disposez de deux Actions avec la même signature que devrait avoir la même url.

Un exemple simple:

public ActionResult SomeAction()
{
    ...
}

[ActionName("SomeAction")]
[HttpPost]
public ActionResult SomeActionPost()
{
    ...
}

39voto

RHicke Points 1016

Je l'utilise lorsque l'utilisateur télécharge un rapport, de sorte qu'ils puissent ouvrir leur fichier csv directement dans Excel facilement.

[ActionName("GetCSV.csv")]
public ActionResult GetCSV(){
    string csv = CreateCSV();
    return new ContentResult() { Content = csv, ContentEncoding = System.Text.Encoding.UTF8, ContentType = "text/csv" };
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X