是否可以在 MVC 中将路由添加到视图

Is it possible to add a Route to a View in MVC

我对这一切有点陌生。

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

我想做的是指定一个视图的路由。

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

的文件夹下

这是我的控制器:

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

当我在浏览器中输入时:

http://My _Domain/Sync

它returns

resource not found.

所以,我想我会把

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

在我的 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 }
    );
    routes.MapMvcAttributeRoutes();        
}

查看 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

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

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