最后的可选参数但仍然出错

时间:2015-10-21 20:43:55

标签: c# asp.net asp.net-mvc optional-parameters

我在C# V.4函数中有一个非常简单的函数page是一个可选参数,即我通常会调用mysite.com/product/PaginationOfProducts/20但是对于某些页面控件,我必须调用mysite.com/product/PaginationOfProducts/20?page=2但在构建我的解决方案时,我收到optional parameters must appear after all required parameters

的错误
public ActionResult PaginationOfProducts(int id = 0,  int ? page)
        {
// do something
}

我不明白VS如何决定page不是我的可选参数,即使我将其定义为null-able int

2 个答案:

答案 0 :(得分:2)

您需要为页面提供默认值

public ActionResult PaginationOfProducts(int id = 0,  int? page = null)
{
    // do something
}

答案 1 :(得分:0)

很简单,错误说明了一切。 将方法签名更改为

public ActionResult PaginationOfProducts( int? page, int id = 0)

因此,请确保在所需参数后面显示可选参数。 页面不是可选参数,因为它没有(显式)默认值,因此您不能省略它。

您还可以将方法签名更改为

public ActionResult PaginationOfProducts( int id = 0, int? page = null)

通过这样做,page参数也是一个可选参数。