通过简单地将参数添加到您的操作方法中,MVC 直接支持参数。给定如下操作:
public ActionResult GetImages(string artistName, string apiKey)
当给定如下 URL 时,MVC 将自动填充参数:
/Artist/GetImages/?artistName=cher&apiKey=XXX
另一种特殊情况是名为“id”的参数。任何名为 ID 的参数都可以放入路径而不是查询字符串中,例如:
public ActionResult GetImages(string id, string apiKey)
将使用如下所示的 URL 正确填充:
/Artist/GetImages/cher?apiKey=XXX
另外,如果你有更复杂的场景,你可以自定义 MVC 用来定位动作的路由规则。您的 global.asax 文件包含可以自定义的路由规则。默认情况下,规则如下所示:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
如果你想支持像
这样的 url
/Artist/GetImages/cher/api-key
您可以添加如下路线:
routes.MapRoute(
"ArtistImages", // Route name
"{controller}/{action}/{artistName}/{apikey}", // URL with parameters
new { controller = "Home", action = "Index", artistName = "", apikey = "" } // Parameter defaults
);
和上面第一个例子一样的方法。