MVC4? (Questionmark)为/(Slash)动作/参数分隔符

时间:2013-08-30 11:42:09

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

我创建了一个mvc4应用程序,我需要一个questionmark作为动作/参数分隔符。此参数是可选的。

www.mydomain.com?myParam

config.Routes.MapHttpRoute(
  "DefaultRoute",
   routeTemplate: "{controller}/{action}?{*param}",
   defaults: new { controller = "Index", action = "Index", param = UrlParameter.Optional }
);

路线应如何实现这一目标?

1 个答案:

答案 0 :(得分:4)

您可以像往常一样构建您的网址(params用?和&分隔)。如果您定义由斜杠分隔的任何参数,则意味着您希望您的URL看起来更容易理解。

如果您希望您的网址采用标准方式,请删除param定义:

config.Routes.MapHttpRoute(
"DefaultRoute",
routeTemplate: "{controller}/{action}",
defaults: new { controller = "Index", action = "Index"}
);

现在您可以添加任意数量的参数 例如,您的网址可能如下所示:

Index/Index?param1=something&param2=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

将使用这些参数调用该方法。