我尝试使用属性路由为客户端(特别是AngularJS)模板创建一个通用操作,这样我就不需要为每个视图添加一堆单独的操作。
这是我最初的尝试:
[RoutePrefix("views")]
public class ViewsController : Controller
{
[Route("{area}/{viewName=get}")]
public ActionResult Get(string area, string viewName)
{
return View("~/app/views/" + area + "/" + viewName + ".cshtml");
}
}
我们说我有一个" get.cshtml"查看文件夹app / views / home。
我注意到的是:
/views/home/get
,它就能正常工作。/views/home
,我会得到一个404并且该方法永远不会被执行。FooController
(即认为它可能是约定与属性路由之间的冲突)并尝试点击/views/home
,我仍然获取一个404。[RoutePrefix("view")]
并尝试点击/view/home
,则 正常工作。为什么会这样?它是属性路由中的错误吗?它是MVC路由中的某种特殊关键字或保留字吗?它是否与默认的MVC"视图"有关。文件夹,它仍然存在于其web.config等等?