MVC Action 作为没有控制器的单路由

MVC Action as singleroute without controller

我有一些控制器,我只想将动作显示为路线。首先我得到 Home/Start。我喜欢只显示 /Start。对于 Contact 也是如此。它只能通过路由配置更改还是有属性?

public class HomeController : Controller
{
    public ActionResult Start()
    {
        return View();
    }

    public ActionResult Contact()
    {
        return View();
    }

    public ActionResult Impress()
    {
        return View();
    }
}

路由配置是唯一的方法,方法如下

首先,像这样定义所有非家庭控制器路由:

routes.MapRoute(
    "Account", // Route name
    "Account/{action}/{id}", // URL with parameters
    new { controller = "Account", action = "Index", id = UrlParameter.Optional } // Parameter     defaults
);

routes.MapRoute(
    "Admin", // Route name
    "Admin/{action}/{id}", // URL with parameters
    new { controller = "Admin", action = "Index", id = UrlParameter.Optional } // Parameter     defaults
);

然后在所有这些之后,像这样定义默认路由:

routes.MapRoute(
    "Default", // Route name
    "{action}/{id}", // URL with parameters
    new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter     defaults
);

使用属性路由。

您只需要在操作之前放置一个带有操作名称的属性即可:

    [HttpGet]
    [Route("Get")]
    public ViewAction Get(long id)
    {
        return;
    }