C#如何从URL获取两个参数

时间:2017-09-04 15:00:31

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

我试图做一些简单的事情,但想知道最好的方式..

我的大多数API获取服务接受参数,并且我已使用该URL来获取它们。到目前为止,我已经使用过:

[HttpGet("ACTION/{paramName}")]
public IActionResult ACTION(string param1)

这很好用,我不想替换它。我的问题是,当我需要两个参数时,我该怎么办?我找到了一种方法:

[HttpGet("ACTION/{param1}/{param2}")]
public IActionResult ACTION(string param1,string param2)

但它看起来很难看,我确信有更好的方法来捕捉参数。

2 个答案:

答案 0 :(得分:0)

您有两种方式:

首先,正如你所说的丑陋:

[HttpGet("ACTION/{param1}/{param2}")]
public IActionResult ACTION(string param1,string param2)

此案例中的网址为:/ACTION/somevalue1/somevalue2

第二,也许是丑陋的:

[HttpGet("ACTION")]
public IActionResult ACTION(string param1,string param2)

该案例中的网址:/ACTION?param1=somevalue1&param2=somevalue2

答案 1 :(得分:0)

您可能有一个可用于整个类的参数,可能会像这样定义:

[Route("api/[controller]")]
public class ProductsController : Controller
{
   [HttpPut("Buy")]      // Matches PUT 'api/Products/Buy'
   [HttpPost("Checkout")] // Matches POST 'api/Products/Checkout'
   public IActionResult Buy()
}

我真的更喜欢使用microsoft documentation中的示例,因为它们非常好。