1

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

www.mydomain.com?myParam

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

路线应该如何完成这个?

4

1 回答 1

4

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

如果您希望您的 URL 采用标准方式,只需删除param定义:

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

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

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

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

于 2013-08-30T11:50:17.420 回答