我在寻找C#中与Spring MVC使用注释进行url映射的相等部分,也就是在Java中我可以写:
@Controller
@RequestMapping("/some-friendly-url/")
class MyController
{
@RequestMapping(value = "/{type}/more-seo-stuff/{color}", method = RequestMethod.GET)
public List<SomeDTO> get(@PathVariable String type,
@PathVariable String color,
int perPage) {
...
}
@RequestMapping(method = RequestMethod.POST)
public String post(@RequestBody SomeDTO somethingNew) {
...
}
}
实际上,对于熟悉该概念的任何人来说,它比这个简单示例更加强大。
我尝试搜索如何在ASP.MVC 3或MonoRail中实现相同的功能,但两个框架似乎都基于RoR的约定优于配置“//”哲学,并且很难实现上述功能,需要在控制器类之外编写许多特定路由条目,只有一小部分功能可通过属性使用。 Spring.NET似乎也没有解决这个问题,只是说明ASP.MVC的路由功能已经足够。
在C#世界里,是否有任何提供此类型功能的东西?我正要开始考虑编写自己的代码来解决这个问题,但希望不必这样做。
编辑:最后找到了“AttributeRouting”项目,它也可以在NuGet上获得:https://github.com/mccalltd/AttributeRouting/wiki/1.-Getting-Started。效果完美。虽然不支持Spring MVC的全部功能范围,但支持其中的大部分功能。
Akos Lukacs还指向另一个ITCloud的好库,但遗憾的是该库无法在NuGet上使用。