在我的MVC项目中创建WebService
本文关键字:创建 WebService 项目 我的 MVC | 更新日期: 2023-09-27 17:50:00
我知道还有另一个关于WebapiConfig.cs和RouteConfig.cs的线索,但我可以保证这是一个不同的问题
当我发现我必须创建一个Web服务(在同一域中(,在那里我可以访问我的一个模型(JSON和XML(时,我的MVC项目已经开发完成了。
为了做到这一点,我右键单击了我的控制器,并选择了"使用实体框架添加Web API 2控制器和操作",还选择了我的模型类和数据库上下文。
模板非常完整,我想我已经准备好进行以下测试了:
namespace MVC4GMAPS.Controllers
{
public class RestController : ApiController
{
private LocationDBContext db = new LocationDBContext();
// GET api/Rest
public IQueryable<Location> GetLocations()
{
return db.Locations;
}
etc...
不幸的是,当我尝试访问https://localhost:44300/api/Rest
时,我得到了一个404。然而,localhost:44300/Home/Index
保持良好的工作状态。
我相信这个问题取决于我的RouteConfig.cs,因为它需要一个{操作},而我的RestController没有任何操作:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
etc...
我能做什么?我可以同时创建WebapiConfig.cs文件吗?我相信不会。我希望你能帮助我!
您也有WebApiConfig.cs
吗?在一个从一开始就是"Web API"的项目中,我有这个:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
与其他配置一样,这是从Global.asax.cs
:调用的
GlobalConfiguration.Configure(WebApiConfig.Register);
这应该使路由指向API控制器。否则,正如您所说,默认情况下,从MVC定义的路由将在一个不存在的名为api
的控制器上寻找一个称为Rest
的操作。