繁体   English   中英

在asp.net mvc中设置索引操作默认操作控制器

[英]set index action default action controller in asp.net mvc

我在写时试图使索引动作是此控制器中的默认动作

http // mydomain / action

通话索引操作> http // mydomain / case-studies

将调用索引动作

我在写url时遇到的问题给我此消息The resource cannot be found. 我写它的URL http//mydomain/case-studies它应该是调用索引操作,但是The resource cannot be found.

这是控制器

 [RoutePrefix("case-studies")]
public class case_studiesController : Controller
{
    // GET: CaseStudies
    [Route("Index")]
    public ActionResult Index()
    {

        return View("/views/case-studies/Index.cshtml");
    }

    [Route("adaep")]
    public ActionResult adaep()
    {
        return View("/views/case-studies/pagename.cshtml");
    }
}

这是我的路线

 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(“ Index”)]更改为具有相同路由的[Route(“”)]]

      [Route("")]
    public ActionResult Index()
    {

        return View("/views/case-studies/Index.cshtml");
    }

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

   }
}

那条路线做到了。路线的定义是:如果{controller}为空,如果{action}为空,则使用“ Home”;如果{id}在id参数中具有值位置,则使用“ index”。 对于只有控制器名称的每个url,请求都应执行index动作

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

);

这是因为你的MapRoute不正确,你MapRoute是有家庭的默认控制器:

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

更改为:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM