Qual é a vantagem de definir um alias para um método de ação usando o atributo "ActionName"? Eu realmente não vejo muito benefício nisso, em fornecer ao usuário a opção de chamar um método de ação com algum outro nome. Depois de especificar o alias, o usuário pode chamar o método de ação apenas usando o alias. Mas se isso for necessário, por que o usuário não altera o nome do método de ação em vez de especificar um alias para ele?
Eu realmente apreciaria se alguém pudesse me fornecer um exemplo do uso de "ActionName" em um cenário em que ele pode fornecer um grande benefício ou é melhor usar.
asp.net-mvc
asp.net-mvc-3
Hasan Fahim
fonte
fonte
Respostas:
Ele permite que você inicie sua ação com um número ou inclua qualquer caractere que .net não permite em um identificador. - O motivo mais comum é que permite que você tenha duas ações com a mesma assinatura (consulte as ações GET / POST Delete de qualquer controlador de scaffold)
Por exemplo: você pode permitir travessões no nome da ação do seu url
http://example.com/products/create-product
vshttp://example.com/products/createproduct
ouhttp://example.com/products/create_product
.fonte
Controller
, como Exibir ou Arquivo.Action
View()
, você teria problemas porque todas as referências aView()
em seu controlador atual resolveriam issoAction
ao invés do método base subjacente. Então, para contornar isso, você usaria oActionName
atributo para permitir aView
ação, mas internamente você o chamariaPublicView
ou algo semelhante.return View("CreateProduct")
ou o .NET vai reclamar sobre não encontrar uma visão comocreate-product.aspx
oucreate-product.cshtml
- pelo menos meu código funciona assim.Também é útil se você tiver duas ações com a mesma assinatura que devem ter o mesmo url.
Um exemplo simples:
fonte
Eu o uso quando o usuário baixa um relatório para que possa abrir facilmente seu arquivo csv diretamente no Excel.
fonte
Experimente este código:
fonte
Esta classe representa um atributo que é usado para o nome de uma ação. Também permite que os desenvolvedores usem um nome de ação diferente do nome do método.
fonte
Também é útil quando você precisa implementar a sobrecarga de método.
Aqui, um ActorView não aceita parâmetros e o outro aceita int. O primeiro método usado para visualizar a lista de atores e o outro é usado para mostrar a mesma lista de atores após excluir um item com ID como 'id'. Você pode usar o nome da ação como 'ActorViewOverload' sempre que precisar de sobrecarga de método.
fonte