ActionName的用途

使用“ActionName”属性为操作方法设置别名有什么好处? 我真的没有看到它的好处,给用户提供了调用其他名称的操作方法的选项。 指定别名后,用户只能使用别名调用操作方法。 但是,如果这是必需的,为什么用户不更改操作方法的名称,而不是指定别名?

我真的很感激任何人都可以提供一个例子,说明在可以提供很大好处或最好使用它的场景中使用“ActionName”。


它允许你用一个数字开始你的动作,或者包含任何.net在标识符中不允许的字符。 - 最常见的原因是它允许您拥有两个具有相同签名的操作(请参阅任何脚手架控制器的GET / POST Delete操作)

例如:你可以让你的URL操作名称中的破折号http://example.com/products/create-product VS http://example.com/products/createproducthttp://example.com/products/create_product

public class ProductsController {

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

}

如果您有两个具有相同网址的相同签名的动作也很有用。

一个简单的例子:

public ActionResult SomeAction()
{
    ...
}

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

我在用户下载报告时使用它,以便他们可以轻松地将他们的csv文件直接打开到Excel中。

[ActionName("GetCSV.csv")]
public ActionResult GetCSV(){
    string csv = CreateCSV();
    return new ContentResult() { Content = csv, ContentEncoding = System.Text.Encoding.UTF8, ContentType = "text/csv" };
}
链接地址: http://www.djcxy.com/p/23361.html

上一篇: Purpose of ActionName

下一篇: allow hyphens in URLs for asp.net mvc 2 controller names