是否可以在MVC中向View添加Route

时间:2016-02-04 12:44:59

标签: c# asp.net-mvc asp.net-mvc-routing

我对这一切都有点新鲜。

我知道您可以在MVC中为API控制器指定路由。

我想要做的是指定一个到View的路径。

因此,我的视图名为ImageUploader,并保存在名为Service

的文件夹下

这是我的控制者:

[Route("Sync")]
public ActionResult ImageUploader()
{
    return View();
}

当我在浏览器中输入时:

http://My _Domain/Sync

它返回

  找不到资源。

所以,我以为我会把

[Route("")]
public class ServiceController : Controller

在我的类控制器之上,但这给了我同样的错误。

我可以使用Route标签轻松完成此操作吗?

以下是我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 }
    );
    routes.MapMvcAttributeRoutes();        
}

1 个答案:

答案 0 :(得分:2)

查看Attribute Routing in ASP.NET MVC 5

<强> Enabling Attribute Routing

要启用属性路由,请在配置期间调用MapMvcAttributeRoutes

 
public class RouteConfig {

    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 }
        );
    }
}

Route Prefixes

如果需要,在method属性上使用波浪号(〜)覆盖路由前缀:

public class ServiceController : Controller {
    //eg GET /Sync
    [Route("~/Sync")]
    public ActionResult ImageUploader() {
        return View();
    }
}