我已经创建了我的第一个WebAPI项目来学习,该项目在项目的根目录中有一个index.html页面。我将该页面设置为启动。所有工作正常。但是,我想使用MVC控制器来调用视图。在WebAPI项目中创建MVC控制器默认值
所以我在我的Controller文件夹中创建了一个名为“DefaultController”的新MVC控制器。其中有一个方法:
public ActionResult Index()
{
return View();
}
我创建了一个View文件夹,并关闭了默认文件夹,其中创建了一个Index.cshtml文件。
当我启动该项目时,它会调用我的旧index.html。所以,我将启动改为index.cshtml,这是错误的 - 知道。 MVC调用一个控制器方法。所以,我试图解决 - 我如何在我的DefaultController中调用控制器方法?
我想我需要改变我的路线?
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { action = "Index", id = UrlParameter.Optional }
);
}
我的计划是使用cshtml页面(而不是html页面)来利用布局并允许控制器启动视图。每个视图都会使用api回调我的WebApi控制器来执行数据处理。
这似乎是一个很好的方式来处理我的WebAPI/KnockoutJs项目?
我只需要知道如何让控制器成为默认值。
删除index.html页面时,我得到的错误:
HTTP Error 403.14 - Forbidden The Web server is configured to not list the contents of this directory.
我已经注意到了,因为我创造了我的项目,作为项目的WebAPI的的RegisterRoutes永远不会被调用。相反,正在使用“WebApiConfig”类。 – Craig
在启动时调用注册路由 – Nkosi
好吧,为了确认,我有一个WebApi项目(没有MVC的东西)。我添加一个MVC控制器(然后添加默认路由等,以及所有的MVC辅助参考)。然后在调用WebApiConfig.Register之后,在Application_Start中添加一个对RegisterRoutes的调用?然后,我如何将我的Home.Index方法作为我的启动进行发送? – Craig