我想从特定Controller的URL中删除控制器名称。
我的控制器名称为产品
我找到了一些链接来做这个
Routing with and without controller name
MVC Routing without controller
但是所有上述链接都在路由配置文件中完成。那些也影响着其他控制器。我想使用属性路由来做到这一点。
有可能吗?因为我想仅为产品控制器执行此操作。
我试图像这样做
[Route("Sample/{Name}")]
但它不起作用。
答案 0 :(得分:1)
Gabriel的答案是正确的,但是,由于您要求使用MVC,并且答案适用于Web API,因此可能会有点误导。
在任何情况下,您想要的是将注释放在类定义而不是操作方法上。 MVC示例如下:
[RoutePrefix("SomethingOtherThanProduct")]
public class ProductController : Controller
{
public ActionResult Index()
{
...
return View();
}
}
我也将此作为答案,因为您可能会发现以下文章有用:[Attribute] Routing in ASP.NET MVC 5 / WebAPI 2
答案 1 :(得分:0)
确保在整个控制器类上设置RoutePrefix属性,并在操作上使用Route属性。
[RoutePrefix("notproducts")]
public class ProductsController : ApiController
{
[Route("")]
public IEnumerable<Product> Get() { ... }
}