Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AngularJs,基于用户插入的可选参数使用REST服务_Angularjs_Asp.net Web Api - Fatal编程技术网

AngularJs,基于用户插入的可选参数使用REST服务

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

我想根据用户输入(2个Html文本框)向url传递可选参数,并相应地使用ASP.NET Web API,但我不知道如何使用。 这是我的控制器

[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) { /* */ })...