我的模型如下所示:
class File{
public IList<Tag> Tags;
};
根据REST指南,如果我想在文件中添加标签。 URL应如下所示: 使用PUT方法http://service.com/File/Id/Tags/。
因为我只是ASP.net MVC WebAPI的初学者。我的问题是如何将此URL路由到我的APIController?
谢谢,
答案 0 :(得分:0)
默认情况下,所有API控制器的路由都为/api/SomeApi/
,其中SomeApiController是ApiController。有一个单独的路由文件App_Start\WebApiConfig.cs
,您可以修改该文件以获取所需的路由。
您可以拥有如下所示的路线
config.Routes.MapHttpRoute(
name: "ApiById",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional },
constraints: new { id = @"^[0-9]+$" }
);
config.Routes.MapHttpRoute(
name: "ApiByAction",
routeTemplate: "api/{controller}/{action}",
defaults: new { action = "Get" }
);
然后您可以使用名为“UpdateSomething”的操作,可以使用somewebsite.com/api/someapi/updatesomething
访问该操作。我希望上述信息对于开始时非常有用。
<强>更新强>
对于路线/File/Id/Tags
,您可以定义以下路线
config.Routes.MapHttpRoute(
name: "MySpecialRoute",
routeTemplate: "/File/Id/Tags",
defaults: new { controller = "AbcController", action = "XyzAction" }
);
注意:尚未测试上述代码