花瓣括号在MVC中的路径中意味着什么?

Exi*_*tos 3 asp.net-mvc asp.net-mvc-routing asp.net-mvc-3

我正在设置我的路线与MVC项目,但我对花括号有点困惑...

如果我有...

routes.MapRoute( "Music", "Music/{name}", new {  } );
Run Code Online (Sandbox Code Playgroud)

围绕名称的花括号的目的是什么,这是否会传递给某些东西?或者,如果我传递默认对象,这会映射到什么?

Ufu*_*arı 5

它们是路由请求中使用的参数名称.例如,默认路由定义了其中三个:

{controller}/{action}/{id}
Run Code Online (Sandbox Code Playgroud)

controlleraction参数用于查找控制器操作.id参数可以用作这些操作的输入.

定义自定义路径时,必须提供controlleraction参数.如果未在URL中定义它们,则应提供默认值,以便MVC知道请求与该路由匹配时要运行的操作.

  routes.MapRoute("Music",
                  "Music/{name}",
                   new { controller="Music", action="SomeAction" });
Run Code Online (Sandbox Code Playgroud)

像其他参数idname你这样定义可以用来提供输入的动作.在您的示例中,name参数将传递给匹配的操作,如下所示:

public ActionResult SomeAction(string name)
{
    //do something
}
Run Code Online (Sandbox Code Playgroud)

  • 花括号表示它是一个变量.如果它不是大括号,则表示静态文本.您可能希望在URL中定义常量部分.并非一切都必须是变量. (3认同)