ASP.NET MVC如何始终访问索引页/操作以及如何设置默认路由。

时间:2018-10-30 03:14:09

标签: c# xml asp.net-mvc

假设在我的项目中我有这样的结构:

public class SalesOrderController : OrderController
{

    public ActionResult Index()
    {

    }
}

public class PurchaseOrderController : OrderController
{
    public ActionResult Index()
    {

    }
}

public class HomeController : Controller
{
    public ActionResult Index()
    {

    }

}

通常,您访问这样的网页:

myUrl / SalesOrder / Index

myUrl / PurchaseOrder / Index

myUrl /主页/索引

我该如何设置,以便当我访问myUrl / SalesOrder时它将自动访问该控制器的索引页?如何使它适用于所有控制器?是通过路由吗?还是有另一种方法?

编辑:

我修改了默认路由,因为当在地址页面中访问“ myUrl”时,我很难配置要访问的第一页。

我的默认路由当前如下所示:

routes.MapRoute(
      name: "Default",
      url: "{controller}/{action}/{id}",
      defaults: new { controller = "Login", action = "Login", id = UrlParameter.Optional }
  );

我尝试通过使用如下标记更改web.config来控制Web应用程序应访问的首页:

<defaultDocument>
  <files>
    <add value="Login/Login" />
  </files>
</defaultDocument>

我也尝试在IIS上更改默认文档,但似乎无法配置Web应用程序应访问的第一页。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用属性路由来实现类似的目的

public class PurchaseOrderController : OrderController
{
    [Route("PurchaseOrder")]
    [Route("PurchaseOrder/Index")]
    public ActionResult Index()
    {

    }
}

public class HomeController : Controller
{
    [Route("Home")]
    [Route("Home/Index")]
    public ActionResult Index()
    {

    }

}

您可以了解有关此here的更多信息。