MVC Action as singleroute without controller

时间:2015-01-12 10:04:48

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

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

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

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

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

2 个答案:

答案 0 :(得分:1)

路由配置是唯一的方法,这里有

的方法

首先,定义所有非家庭控制器路由,如下所示:

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

答案 1 :(得分:1)

使用AttributeRouting。

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

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