不仅仅是{controller}/{action}/{id}
有可能有多个参数,比如
{controller}/{action}/{id}/{another id}
?
我是 MVC 的新手(来自纯网页)。如果不可能,MVC 是否提供类似于UrlData
Web Pages 中可用的辅助方法?
不仅仅是{controller}/{action}/{id}
有可能有多个参数,比如
{controller}/{action}/{id}/{another id}
?
我是 MVC 的新手(来自纯网页)。如果不可能,MVC 是否提供类似于UrlData
Web Pages 中可用的辅助方法?
您只需要在 global.asax 中映射新路线,如下所示:
routes.MapRoute(
"NewRoute", // Route name
"{controller}/{action}/{id}/{another_id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional, another_id = UrlParameter.Optional } // Parameter defaults
);
然后在控制器的操作中,您可以像这样获取参数:
public ActionResult MyAction(string id, string another_id)
{
// ...
}
是的,您可以在一个路由中定义多个参数。您需要首先在 Global.asax 文件中定义您的路线。您可以在 URL 段或部分 URL 段中定义参数。要使用您的示例,您可以将路线定义为
{controller}/{action}/{id1}/{id2}
然后,MVC 基础结构将解析匹配的路由以提取 id1 和 id2 段,并将它们分配给您的操作方法中的相应变量:
public class MyController : Controller
{
public ActionResult Index(string id1, string id2)
{
//..
}
}
或者,您也可以接受来自查询字符串或表单变量的输入参数。例如:
MyController/Index/5?id2=10
路由在这里更详细地讨论