在asp.net web api中添加一个额外的get方法
Add an extra get method in asp.net web api
我是asp.net web api世界的新手。我对get()、put()、post()和delete有了基本的理解。
在我的应用程序中,我还需要两个get()方法。下面给出了一个解释-
public class StudentController : ApiController
{
public IEnumerable Get()
{
//returns all students.
}
//I would like to add this method=======================
[HttpGet]
public IEnumerable GetClassSpecificStudents(string classId)
{
//want to return all students from an specific class.
}
//I also would like to add this method=======================
[HttpGet]
public IEnumerable GetSectionSpecificStudents(string sectionId)
{
//want to return all students from an specific section.
}
public Student Get(string id)
{
//returns specific student.
}
}
angularjs控制器中已经存在一个$http.get(..)
。
我的问题是,如何从角度控制器调用另外两个get()
方法。
嗯,我已经很久没有使用asp.net mvc了。但你可以做一些类似的事情:
public class StudentController : ApiController
{
[Route("students")]
public IEnumerable Get()
{
//returns all students.
}
//I would like to add this method=======================
[HttpGet]
[Route("students/class/{classId}")]
public IEnumerable GetClassSpecificStudents(string classId)
{
//want to return all students from an specific class.
}
//I also would like to add this method=======================
[HttpGet]
[Route("students/section/{sectionId}")]
public IEnumerable GetSectionSpecificStudents(string sectionId)
{
//want to return all students from an specific section.
}
[Route("students/{id}")]
public Student Get(string id)
{
//returns specific student.
}
}
您也可以在routeconfig中指定如下路线:
routes.MapRoute(
name: "students",
url: "students/class/{classId}",
defaults: new { controller = "Student", action = "GetClassSpecificStudents", id = UrlParameter.Optional }
);
你必须为你自己努力。你可以在这里和这里阅读更多关于它的信息。
并不是说你有指定的路线,你可以为每条路线添加有角度的$http.gets。
var url = "whateverdoma.in/students/"
$http.get(url)
.success()
.error()
var url = "whateverdoma.in/students/class/" + classId;
$http.get(url)
.success()
.error()
var url = "whateverdoma.in/students/filter/" + filterId;
$http.get(url)
.success()
.error()
您要做的是编写costum angular resource方法,以调用您的API。
-
使用angular$resource而不是$http->它是更常见的用法(并且更面向REST:$resource包装$http用于RESTful web API场景)。
-
阅读
-
了解如何将资源添加到$resource服务。
这里有一个例子:
.factory('Store', function ($resource, hostUrl) { var url = hostUrl + '/api/v3/store/'; return $resource("", { storeId: '@storeId' }, { getSpecific: { method: 'GET', url: hostUrl + '/api/v3/store-specific/:storeId' } });
})
相关文章:
- 将一个方法转换为promise:Nodejs
- 如何在所有ng点击事件AngularJS上启动一个方法
- 创建一个方法,通过一个窗口进行迭代并获取Titanium中的所有控件
- 如何创建一个方法来验证数组的范围
- 如何将一个方法延迟到另一个方法首先完成,javascript
- 在Javascript中对类的每个实例调用一个方法
- 如何重写一个方法,并且仍然能够在重写的方法中使用基方法
- NodeJS-从同一文件中的另一个方法调用一个方法
- 有没有任何情况下,一个方法不应该是原型方法
- Jasmine间谍的函数称为一个方法
- 在带有参数列表的表单submit上调用一个方法
- 方法不在另一个方法内部调用
- 在 1 个方法中增加变量值会触发另一个方法的 for 循环,欢迎任何建议
- 如何使用javascript express node将变量从控制器中的一个方法公开.js到另一个控制器.js
- 如何在javascript中将变量的值分配给另一个方法
- 在浏览器关闭时,单击确认对话框中的“停留在页面上”,执行一个方法
- 使用一个方法在c#中启动其他方法
- 如何在Ember中转换到另一个路由时调用一个方法
- 在typescript中重载一个方法
- 我可以在setInterval函数中放入一个方法作为参数吗