Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将Web Api MapHttpRoute映射到基本Url_C#_Asp.net Mvc_Asp.net Mvc 4_Asp.net Web Api_Asp.net Mvc Routing - Fatal编程技术网

C# 将Web Api MapHttpRoute映射到基本Url

C# 将Web Api MapHttpRoute映射到基本Url,c#,asp.net-mvc,asp.net-mvc-4,asp.net-web-api,asp.net-mvc-routing,C#,Asp.net Mvc,Asp.net Mvc 4,Asp.net Web Api,Asp.net Mvc Routing,嗨,我有一个控制器,如下所示 [RoutePrefix("")] public class ApiInformationController : Controller { public ActionResult Index() { var info = new ApplicationInformation { ApplicationName = "Test App", DatabaseName = "

嗨,我有一个控制器,如下所示

[RoutePrefix("")]
public class ApiInformationController : Controller
{
    public ActionResult Index()
    {
        var info = new ApplicationInformation
        {
            ApplicationName = "Test App",
            DatabaseName = "SQL Server 2012",
            ApplicationVersion = "3.10.0"
        };
        return Json(info, JsonRequestBehavior.AllowGet);
    }
}
我还在WebApiConfig中配置了路由,因为我不想单独使用RouteConfig

private static void ConfigureRoutes(HttpConfiguration config)
    {
        _config = config;

        // Web API routes
        _config.MapHttpAttributeRoutes();

        _config.Routes.MapHttpRoute("Default", "{controller}/{action}/{id}",
            new {controller = "ApiInformation", action = "Index", id = RouteParameter.Optional});
        _config.Routes.MapHttpRoute(name: "DefaultApi", routeTemplate: "api/{controller}/{id}",
            defaults: new {id = RouteParameter.Optional});
    }
当我尝试访问基本url时,我希望显示API信息。 例如,当我尝试时,我希望Api调用ApiInformationController的索引。我做错了什么

当前当我调用url时,我得到以下响应,
需要修改MapHttpRoute的routeTemplate

像WebApiConfig一样

config.Routes.MapHttpRoute("Default", "{controller}/{action}/{id}",
        new { controller = "ApiInformation", action = "Index", id = RouteParameter.Optional });
你是如何接受的

[System.Web.Http.HttpGet]
public IHttpActionResult Index()
{
    var info = new ApplicationInformation
    {
        ApplicationName = "Test App",
        DatabaseName = "SQL Server 2012",
        ApplicationVersion = "3.10.0"
    };
    return Json(info);
}

希望它能帮助您修改MapHttpRoute的routeTemplate

像WebApiConfig一样

config.Routes.MapHttpRoute("Default", "{controller}/{action}/{id}",
        new { controller = "ApiInformation", action = "Index", id = RouteParameter.Optional });
你是如何接受的

[System.Web.Http.HttpGet]
public IHttpActionResult Index()
{
    var info = new ApplicationInformation
    {
        ApplicationName = "Test App",
        DatabaseName = "SQL Server 2012",
        ApplicationVersion = "3.10.0"
    };
    return Json(info);
}

希望它能帮助你

没有MapHttpAttributeRoutes它能工作吗?你是将MVC项目与API一起使用还是将API项目一起使用?@Vinay-Ashiquizzman有一个观点。MVC和WebAPI是独立的框架,每个框架都有自己的路由,您需要确保它们的URL不冲突。根据问题中的MVC标记,看起来您正试图将MVC路由放在WebAPI配置中(或者,您只是将路由加倍,这不是一件好事)。MVC路由应该添加到您的RouteConfig.cs文件中,而不是这里。感谢您的帮助,您可以帮助我使用ApiController实现Web APi路由吗。这样,当单击基本url时,我会得到所需的结果。它在没有MapHttpAttribute路由的情况下工作吗?您是将MVC project与API一起使用还是将API project一起使用?@Vinay-Ashiquizzman有道理。MVC和WebAPI是独立的框架,每个框架都有自己的路由,您需要确保它们的URL不冲突。根据问题中的MVC标记,看起来您正试图将MVC路由放在WebAPI配置中(或者,您只是将路由加倍,这不是一件好事)。MVC路由应该添加到您的RouteConfig.cs文件中,而不是这里。感谢您的帮助,您可以帮助我使用ApiController实现Web APi路由吗。这样,当单击基本url时,我会得到所需的结果。这里用于查询工作正常的数据。但是,如果某个用户只是尝试像这样访问基本url,我希望显示ApiInformation。我可以使用ApiController而不是MVC控制器来实现这一点。这里用于查询工作正常的数据。但是,如果一些用户只是尝试像这样访问基本url,我希望显示ApiInformation。我可以使用ApiController而不是MVC控制器来实现这一点吗。