我有一个 CAR Controller 并创建我的 API 以获取汽车列表以及 GRID 中每辆汽车的详细信息并且工作正常。
现在我正在为汽车创建一个 ListTree 并且只需要基本的细节。 ID 和颜色
我如何在当前 Controller 中创建另一个具有相同签名的方法 GetSimpleCar() 或者我应该创建另一个 Controller CarSimple
目前我有:
public List<dtoCar> Get()
{
List<dtoCar> result = db.cars.Select(
r => new dtoCar
{
Car_ID = r.car_id,
X = r.x,
Y = r.y,
RoadName = r.rto.name,
Azimuth = (int)r.avl.azimuth,
Color = r.Color,
DateTime = r.datetime.Value,
Geom = r.geomtext
}).ToList();
return result;
}
我不想使用当前的 API 来创建树。
$('#ajax').jstree({
'core': {
'data': {
-- RIGHT NOW
"url": "http://localhost/TreeTest/api/Cars/"
^^
Controller
-- DESIRE CHANGE
"url": "http://localhost/TreeTest/api/Cars/GetSimpleCar"
^^
Second Method?
}
},
"checkbox": {
"keep_selected_style": false
},
"plugins": ["wholerow", "checkbox"]
});
请您参考如下方法:
你可以像这样在同一个 Controller 中设置固定路由:
using System.Web.Http;
...
[HttpGet]
[Route("api/Cars/GetSimpleCar")]
public object GetCarsButOnlyIdAndColor()
{
return db.cars.Select(r => new
{
Car_ID = r.car_id,
Color = r.Color,
}).ToList();
}
WebApi 不关心方法的名称,重要的是路由。
就像 vendettamit 说的,你需要 Enable Attribute Routing
文档:
