任何人都可以解释我关于属性路由。我对此有疑问。MVC中的属性路由
当我使用“唯一”属性路由时,我得到了以下错误。
- 当URL是 “http://localhost:51254/”:
HTTP错误403.14 - 禁止访问Web服务器被配置为不列出此目录的 内容。
- 当URL是 “http://localhost:51254/MyHome/HomeAction”
HTTP错误404.0 - 未找到您正在寻找已经 删除的资源,有其名称更改,或者暂时不可用。
我的代码在控制器:
[RoutePrefix("MyHome/{action}")]
public class IndexController : Controller
{
[Route("HomeAction")]
public ActionResult Index()
{
return View();
}
[Route("CallUs")]
public ViewResult ContactUs()
{
return View();
}
}
而且在RouteConfig.cs
样子:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapMvcAttributeRoutes();
}
}
这有什么错网址是什么?
我尝试不同的方式,如: http://localhost:51254/Index
http://localhost:51254/Index/Index
http://localhost:51254/HomeAction
http://localhost:51254/MyHome/HomeAction
所以,如果我refraim问题,那么这将是这样的:
是它强制性使用基于约定的路由和objRouteCollection.mapRoute
方法? 因为如果我加MapRoute
方法它的工作很好。
我搜索了但找不到任何答案我的问题。对于实施例msdn,c-SharpCorner
此外,如果我只使用属性路由,那么我必须用'路由'属性来修饰每个动作方法。 –
没必要。您可以为单个控制器的操作方法自由组合属性路由和基于约定的路由。控制器的某些操作方法可以具有属性路由(这些方法不能通过基于约定的路由来调用),并且可以通过基于约定的路由(这些方法不具有'路由'属性)来调用来自同一控制器的其他操作方法。 – Sarang