![](/img/trans.png)
[英]Display View in folder without Controller or Action in ASP.net MVC
[英]ASP.Net view folder with a folder inside - How to create the controller
我想创建一个类似于以下地址的URL:localhost:port / farm / animals / cow.cshtml。 如何为/ animals /后面的页面创建控制器?
如果我创建一个标准:
public class FarmController : Controller
{
//
// GET: /Farm/
public ActionResult Cow()
{
return View();
}
}
我不会到达那里,因为cow.cshtml位于动物后面。 我也不会使用以下代码进入cow.cshtml:
public class AnimalsController : Controller
{
//
// GET: /Animals/
public ActionResult Cow()
{
return View();
}
}
因为到cow.cshtml的链接不是/ animals /,而是/ farm / animals / cow。
我该如何解决这个问题?
您需要注册以下路线-
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Animals",
url: "farm/animals/{action}",
defaults: new { controller = "Farm" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
public class FarmController : Controller
{
// GET: Farm
public ActionResult Index()
{
return View();
}
// GET: Farm/Animals
public ActionResult Animals()
{
return View();
}
// GET: Farm/Animals/Cow
public ActionResult Cow()
{
return View();
}
}
虽然路由可以解决您的问题,但这听起来像是MVC领域的工作。 如果您想在实际的应用程序中将站点的各个部分分开,那么这里可能是一个区域。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.