AngularJs,基于用户插入的可选参数使用REST服务
我想根据用户输入(2个Html文本框)向url传递可选参数,并相应地使用ASP.NET Web API,但我不知道如何使用。 这是我的控制器AngularJs,基于用户插入的可选参数使用REST服务,angularjs,asp.net-web-api,Angularjs,Asp.net Web Api,我想根据用户输入(2个Html文本框)向url传递可选参数,并相应地使用ASP.NET Web API,但我不知道如何使用。 这是我的控制器 [Route("api/JobShow/{keyword}/{location}")] public class JobShowController : ApiController { [HttpGet] public PageResult<sp_JobSearch_Result> Get(ODataQueryOpti
[Route("api/JobShow/{keyword}/{location}")]
public class JobShowController : ApiController
{
[HttpGet]
public PageResult<sp_JobSearch_Result> Get(ODataQueryOptions<sp_JobSearch_Result> options, string keyword = null, string location = null)
{
ODataQuerySettings settings = new ODataQuerySettings()
{
PageSize = 20
};
JobWindow obj = new JobWindow();
IQueryable results = options.ApplyTo(obj.showJobs(keyword, location).AsQueryable(), settings);
return new PageResult<sp_JobSearch_Result>(
results as IEnumerable<sp_JobSearch_Result>,
Request.GetNextPageLink(),
Request.GetInlineCount());
}
}
url的示例是…/api/JobShow/Developer/Montreal。谢谢大家。也许能帮到你们
在您的情况下,假设scope.data是您想要发送的参数,它应该如下所示
$http.get("/url/to/resource/", {params:{"param1": $scope.data, "param2": $scope.someOtherData}})
.then(function (response) { /* */ })...
$http.get('/api/JobShow/'+$scope.enteredKeyword+'/'+$scope.enteredLocation)
?具体困难是什么?注意,如果这些参数是可选的,那么它们不应该是路径的一部分。它们应该是查询字符串的一部分。是参数是可选的。我做的和你在这里提到的一样,但是做得不好。这里的查询字符串是什么意思?我指的是参数,它最终向URL发送请求,如api/JobShow?keyword=foo&location=bar
。如果不查看代码,也不告诉我们具体问题是什么,我们无法帮助您处理代码。在我的web api控制器中,我的基本url是“/api/JobShow”,它返回所有作业。它还接受两个可选参数。例如:“/api/JobShow/java”返回java作业,“/api/JobShow/java/toronto”只返回多伦多的java作业。现在在客户端,我希望得到相同的结果,但是可选参数值来自文本框@JBNizetI使用了这个$http.get('/api/JobShow/'+$scope.titleValue+'/'+$scope.locationValue),但是现在必须填充这两个文本框,否则我不会得到任何结果。我的问题是如何在angularjs中拥有可选参数。我希望这有助于澄清我的问题。谢谢您的时间。@jbnitest
$http.get("/url/to/resource/", {params:{"param1": $scope.data, "param2": $scope.someOtherData}})
.then(function (response) { /* */ })...