Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.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/0/asp.net-mvc/17.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# ASP.NETMVC5中的属性路由是否可以在没有WebAPI的情况下使用_C#_Asp.net Mvc_Asp.net Mvc 5_Asp.net Mvc Routing - Fatal编程技术网

C# ASP.NETMVC5中的属性路由是否可以在没有WebAPI的情况下使用

C# ASP.NETMVC5中的属性路由是否可以在没有WebAPI的情况下使用,c#,asp.net-mvc,asp.net-mvc-5,asp.net-mvc-routing,C#,Asp.net Mvc,Asp.net Mvc 5,Asp.net Mvc Routing,我有一个MVC项目,我正在尝试使用属性路由,但是我得到了有效url的404 我让谷歌看看属性路由的常见问题是什么,看看我是否遗漏了一些明显的东西,大多数答案似乎是确保路由注册如下: public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapMvcAttributeRoutes

我有一个MVC项目,我正在尝试使用属性路由,但是我得到了有效url的404

我让谷歌看看属性路由的常见问题是什么,看看我是否遗漏了一些明显的东西,大多数答案似乎是确保路由注册如下:

 public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
        routes.MapMvcAttributeRoutes();

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
    }
routes.mapmvcattributteroutes()
是在控制器中搜索路由属性并配置路由的代码

我还看到了一些对Web API的引用,因为我相信这些属性也可以在APIController中使用

然而,下面的文章似乎建议它可以单独在Mvc中使用,因为没有提到WebAPI

那么,是否存在依赖关系?是否需要Web API才能使路由属性在MVC中工作

更新

使用以下精简代码:

[Route("hello")]
public class SomeController : Controller
{
    // GET: Some
    public string Index()
    {
        return "world!";
    }
}
我可以得到一个有效的回答“世界!”对于url“localhost:58268/hello”,这是一个开始。因此,看起来您可以在MVC5中使用属性路由,而不必依赖Web API


对于实际代码,我在定义路由时一定犯了错误。

是的,您完全可以使用MVC属性路由。它是WebAPI属性路由的一个单独功能。两者都是在同一时间推出的(WebAPI2和MVC5一起发布)

WebAPI属性路由比MVC灵活一点,但对于更基本的场景,应该可以正常工作


请注意,在MVC核心中,Web API和MVC被合并,属性路由更加灵活,并解决了以前框架中的大多数限制。

是的,您完全可以使用MVC属性路由,它是WebAPI属性路由的一个独立功能。两者都是在同一时间推出的(WebAPI2和MVC5一起发布)

WebAPI属性路由比MVC灵活一点,但对于更基本的场景,应该可以正常工作


请注意,在MVC中,核心Web API和MVC合并了,属性路由更加灵活,解决了以前框架中的大多数限制。

请发布控制器代码和路由属性。@PanagiotisKanavos看起来我在实际控制器代码上定义路由属性时一定犯了错误。当我创建一个精简的控制器作为示例发布时,我可以得到一个结果。因此,如果您想回答“Mvc路由属性不需要依赖Web API”的问题,我会将其标记为答案。或者我应该结束这个问题。无论如何,谢谢。请发布控制器代码和路由属性。@PanagiotisKanavos看起来我在实际控制器代码上定义路由属性时一定犯了错误。当我创建一个精简的控制器作为示例发布时,我可以得到一个结果。因此,如果您想回答“Mvc路由属性不需要依赖Web API”的问题,我会将其标记为答案。或者我应该结束这个问题。无论如何,谢谢你。