gpt4 book ai didi

c# - RoutePrefix 不工作 Asp.NET MVC

转载 作者:太空狗 更新时间:2023-10-29 22:25:23 29 4
gpt4 key购买 nike

RoutePrefix 对我不起作用。

Controller

[RoutePrefix("example-name")]
public class HomeController : Controller
{
public ActionResult Index()
{
ViewBag.Title = "Home Page";

return View();
}
}

路由配置

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

索引页

 @Html.ActionLink("click me", "index","example-name");

我已经完成了所有的基本步骤,但是我没有得到 404

The resource cannot be found.

System.Web.Mvc.dll 的版本是 5.2.3.0

最佳答案

我想我找到了解决方案,你必须做以下更改

1.您错过的最重要的事情是:如果为控件指定 RoutePrefix 属性,则需要为操作指定 Route 属性。

 [RoutePrefix("hometest")]
public class HomeController : Controller
{
[Route]
public ActionResult Index()
{
return View();
}

[Route("About")]
public ActionResult About()
{
ViewBag.Message = "Your application description page.";

return View();
}
}

2.你的html View 是这样的

 <li>@Html.ActionLink("hometext", actionName: "Index", controllerName: "hometest")</li>

3.将 routes.MapMvcAttributeRoutes(); 移动到 MapRoute 之前,如下所示。

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

关于c# - RoutePrefix 不工作 Asp.NET MVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47887384/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com