处理查询字符串

本文关键字:字符串 查询 处理 | 更新日期: 2023-09-27 18:09:05

我有一个包含以下方法的CourseAPi Controller:

 public IEnumerable<CoursesDTO> Get(int id)
    {
        var x = _uniManager.GetCourses(id);
        return x;
    }

我想用angalr js把id从URl发送到这个方法AngularJs控制器:

app.controller('CRUD_OperController', function ($scope, $filter, CRUD_OperService, $location) {

GetAllRecords1();
function GetAllRecords1() {
    var id = 12;
    var promiseGetSingle = CRUD_OperService.get(id);
    promiseGetSingle.then(function (pl)
    { $scope.Courses = pl.data },
          function (errorPl) {
             // $log.error('Some Error in Getting Records.', errorPl);
          });
}

});我的angular服务:

app.service('CRUD_OperService', function ($http) {

//Get All Student  
this.getAllStudent = function () {
    return $http.get("/api/CourseApi/" );
}
//Get Single Records
this.get = function (id) {
    return $http.get("/api/CourseApi/" + id);
}

});

my webapi config

 public static void Register(HttpConfiguration config)
    {
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
           name: "DefaultApi1",
           routeTemplate: "api/{controller}/{action}/{id}",
           defaults: new { id = RouteParameter.Optional }
       );
        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
        config.EnableSystemDiagnosticsTracing();
    }

更新:它返回我错误GET http://localhost:54070/api/CourseApi/12 404 (Not Found)

处理查询字符串

这是我为这样一个任务使用的格式:

   this.$http({
        method: 'GET',
        url: 'api/courseapi/' + id
    }).then(function (pl) { 
        $scope.Courses = pl.data
    }, function (errorPl) {
          $log.error('Some Error in Getting Records.', errorPl);
    });

这就是你要问的吗?

我有两个建议:

第一个:在你的angular控制器中使用ng-route配置路由,注入$routeParams模块,然后使用它来检索参数。查看这个链接和Angular文档获取更多信息。

第二个选项是获取url位置并操作字符串以获取参数:

var tokens = $location.absUrl().split("/");
var id = tokens[5]

我更喜欢第一个选项,它比第二个"干净"。希望能帮到你!