Asp.net MVC Controller接受值或null

时间:2015-03-19 01:19:29

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

我有一个像这样的控制器:

public ActionResult mycontroller(int status, DateTime start, DateTime end) 
{
   ...stuff
}

我称之为:

http://localhost:22200/mycontroller?status=1&start=18/03/2015&end=18/04/2015

然而,有一半时间我需要这样称呼它:

http://localhost:22200/mycontroller?status=1

我想为两个电话使用相同的控制器。

有没有办法改变控制器接受或不接受参数?

Ps:我不想拥有2个控制器或这样的网址

http://localhost:22200/mycontroller?status=1&start=null&end=null

那里有任何帮助吗? 非常感谢。

1 个答案:

答案 0 :(得分:9)

制作startend可选/可空参数,如下所示。

ActionResult Action(int status, DateTime? start = null, DateTime? end = null)

可选参数将允许调用操作,无论是否指定了startend查询字符串参数。省略时,将使用默认值null。因此,以下两个URL都有效:

  

http://localhost:22200/mycontroller?status=1

     

http://localhost:22200/mycontroller?status=1&start=18/03/2015&end=18/04/2015