0

我正在尝试创建一个方法,该方法采用两个字符串并在我提供参数时被调用。事实证明这对我来说很难。

这是我的控制器与测试方法:

public class TestController : ApiController
{
    [HttpGet]
    public string Get(string one, string two )
    {
        return "Testing";
    }
}

我希望该方法可在以下网址中使用:

  • 网址/测试/
  • 网址/测试/
  • url/test/?one=1&two=2
  • url/test/?one=1
  • url/test/?two=2
  • 网址/测试/获取
  • url/test/get?one=1&two=2
  • url/test/get?one=1
  • url/test/get?two=2

我还计划添加 POST 支持,但我认为这对 WebAPI 来说很重要,我必须有一个专用的模型类。

我的路线是:

.Routes.MapHttpRoute("Basic", "{controller}/{action}",
            defaults: new { action = "Get" });

我知道我可以设置路由来指定“一”和“二”参数,但我的路由定义位于中心位置,我还没有准备好污染我的全局路由以适应控制器中的特殊情况(然后用其他一百种方法来做)。

在我看来,这是一个非常基本的场景——这里要遵循的模式是什么?

4

1 回答 1

1

您需要在参数上设置默认值以使其可选:

[HttpGet]
public string Get(string one = null, string two = null )
{
    return "Testing";
}
于 2013-07-31T09:55:28.830 回答