我创建了一个mvc4应用程序,需要一个问号作为操作/参数分隔符。此参数是可选的。
www.mydomain.com?myParam
config.Routes.MapHttpRoute(
"DefaultRoute",
routeTemplate: "{controller}/{action}?{*param}",
defaults: new { controller = "Index", action = "Index", param = UrlParameter.Optional }
);
实现这一目标的路线应该是什么样子的?
您可以像往常一样构建URL(参数用?和&分隔)。如果你定义了任何用斜线分隔的参数,这意味着你希望你的URL看起来更容易理解。
如果你想让你的URL以标准的方式,只需删除param
定义:
config.Routes.MapHttpRoute(
"DefaultRoute",
routeTemplate: "{controller}/{action}",
defaults: new { controller = "Index", action = "Index"}
);
现在您可以添加任意数量的参数
例如,您的URL可能看起来像:
Index/Index?param1=something¶m2=something etc
更新:
public class IndexController : ApiController
{
[HttpGet]
public IEnumerable<MyClass> Index(DateTime startDate, DateTime endDate)
{
IEnumerable<MyClass> data = GetSomeData(startDate, endDate);
return data;
}
}
使用上面指定的路由你可以写:
Index/Index?startDate=something&endDate=something
该方法将使用这些参数调用。