我有以下网址。当我通过传递值在浏览器中输入此URL时,我无法访问我的applcation中的api方法。我是MVC的新手。我不确定我们是否可以在MVC WebApi Routing中传递QueryString。如果可能,请帮助在MVC WebAPI路由中传递QueryString。
http://localhost:1665/api/Load/LoadDetails?ID={1}&Latitude={2}&Longitude={3}&Uncertaint
y={4}&Street1={5}&Street2={6}&Neighborhood={7}&Ci&LocationDateTimeUTC={12}
在routeconfig中,我有以下代码,
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}",
defaults: new { action = "Get" }
);
config.Routes.MapHttpRoute(
name: "DefaultApiId",
routeTemplate: "api/{controller}/{id:int}",
defaults: new { id = RouteParameter.Optional }
);
ReportsControllerConfiguration.RegisterRoutes(config);
config.MapHttpAttributeRoutes();
在ApiController中
[RoutePrefix("Load")]
public class LoadController : ApiController
{
#region RESTful Methods
[HttpGet]
[Authorize()]
[Route("saveintransitcheckcall/{ID}/{Latitude}/{Longitude}/{Uncertainty}/{Street1}/{Street2}/{Neighborhood}/{City}/{State}/{Postal}/{Country}/")]
public HttpResponseMessage SaveInTransitCheckCall(int ID)
{}
请帮助您访问该方法。提前谢谢。
答案 0 :(得分:0)
如果你想通过querystring参数传递参数,如下面的url:
http://localhost:1665/api/Load/LoadDetails?ID={1}&Latitude={2}&Longitude={3}&Uncertaint
y={4}&Street1={5}&Street2={6}&Neighborhood={7}&Ci&LocationDateTimeUTC={12}
然后使用下面的代码:
[HttpGet]
[Authorize()]
[Route("saveintransitcheckcall")]
public IHttpActionResult SaveInTransitCheckCall()
{
var queryString = this.Request.GetQueryNameValuePairs();
var ID = queryString.SingleOrDefault(x => x.Key == "ID").Value;
var Latitude = queryString.SingleOrDefault(x => x.Key == "Latitude").Value;
//read other variables like above
//do your remaining code here
}
否则你可以使用RESTful方法尝试下面的代码:
[HttpGet]
[Authorize()]
[Route("saveintransitcheckcall/{ID:int}/{Latitude:decimal}/{Longitude:decimal}/{Uncertainty}/{Street1}/{Street2}/{Neighborhood}/{City}/{State}/{Postal}/{Country}/")]
public HttpResponseMessage SaveInTransitCheckCall(int ID, decimal Latitude, decimal Longitude, string Uncertainty, string Street1, string Street2, string Neighborhood, string City, string State, string Postal, string country)
{
//do your remaining code here
}
请告诉我,这对你有用吗?