我在jQuery中有这个功能
var uri = "api/queries";
function test(){
var params = {
origin: $('#depair').val(),
destination: $('#destair').val(),
departure_date: $('#depdate').val(),
currency: $('#currency').val(),
}
$.getJSON(uri, params)
.done(function (data) {
console.log(data);
});
}
将请求发送到此Controller
:
public class QueriesController : ApiController
{
[HttpGet]
public string GetInfo()
{
return "blah";
}
}
所以,请求看起来像这样
http://localhost:55934/api/queries?origin=&destination=&departure_date=¤cy=
如何从控制器GetInfo
方法中访问请求的参数?
答案 0 :(得分:2)
您可以使用Model Binding。首先像这样创建一个class
(ViewModel
):
public class Querie
{
public string Origin { get; set; }
public string Destination { get; set; }
public string Departure_date { get; set; }
public string Currency { get; set; }
}
然后将此类作为参数包含在您的方法中,如下所示:
public class QueriesController : ApiController
{
[HttpGet]
public string GetInfo(Querie querie)
{
//querie.Origin
return "blah";
}
}
模型绑定将数据从HTTP请求映射到操作方法参数。参数可以是简单类型,例如字符串,整数或浮点数,或者它们可以是复杂类型。这是MVC的一个很棒的功能,因为无论数据的大小或复杂程度如何,将传入数据映射到对应方都是一种经常重复的方案。
答案 1 :(得分:1)
您可以将它们作为参数包含在您的函数中。
[HttpGet]
public string GetInfo(string origin, string destination, string departure_date, string currency)
{
return "blah";
}
答案 2 :(得分:0)
var origin = Request.QueryString["origin"];
用您的参数替换“origin”。