我想创建.net mvc项目,但我也想添加wep-api在同一个项目中,我是否需要一个用于api的控制器和一个用于普通.netmvc的控制器?我在谷歌上搜索过,但没有找到有用的解决方案,任何答案都会对我有帮助非常感谢。
按照以下步骤操作:
1-在App_Start文件夹中添加webapiconfig.cs文件
public class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
2-在Global.ascs.cs文件中添加注释中提到的新行。您的Application_Start函数应如下所示。
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
GlobalConfiguration.Configure(WebApiConfig.Register);//new line for webapi
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
3-现在添加一个新的apicontroller,如下所示。
public class TestController : ApiController
{
public IHttpActionResult GetAll()
{
return Json("test");
}
}
4-Api url将类似"http://localhost:61012/api/Test/GetAll">
5-别忘了添加这个nuget包:Microsoft.AspNet.WebApi