MVC:使用短划线将route-parameter转换为下划线以指定操作名称?

时间:2011-12-20 15:24:49

标签: asp.net-mvc asp.net-mvc-3

我有许多符合{controller} / {action}模式的网址。

我的问题是我想为第二个参数(动作)使用多个以短划线分隔的单词。由于动作方法名称中不允许使用破折号,因此我无法仅使用一个映射映射此模式,并且我必须为每个新操作采用新映射,如下所示:

routes.MapRoute(
    "ContactUsForm", "forms/contact-us", new {
        action = "contact_us", 
        controller = "Forms"
    });

我有许多需要此模式的表单,并且他们的关注点不同,我无法将它们映射到同一个操作方法。

问题 有没有一个简单的方法,比如将{controller} / {some-string}映射到动作“some_string”,并一次性路由我的所有表单URL?

1 个答案:

答案 0 :(得分:6)

您可以在属性中指定操作名称,并在不更改路径的情况下使用它:

[ActionName("some-string")]
public ActionResult MyActionHere(string id) 
{

}