这些天我一直在探索ASP.NET MVC 5,并深入了解一些基础知识。例如,我们创建名为“ HomeController ”的控制器,在这方面,在“主页”中创建一个名为“索引”的视图夹。现在假设我们在名为“数据”的“主页”文件夹中创建了另一个文件夹,并且它还有一个名为“ ViewData ”的视图。在'HomeController'中,我有一个名为' ViewData '的方法如下(我希望这个方法被引用到视图' ViewData '):
public ActionResult ViewData()
{
MainDbContext db = new MainDbContext();
var con = (from c in db.Lists
where c. Public == "No"
select c). ToList();
return View("Data/ViewData", con);
}
当我运行项目时,它按预期工作我的意思是给我输出,URL如下所示:http://localhost:2361/Home/ViewNoData
但我希望这样显示:http://localhost:2361/Home/Data/ViewNoData因为它位于“主页”文件夹下。还有一件事 - 当我右键点击“ViewData()”以匹配视图时,它会显示“无法找到匹配的视图”。我怎么解决它?只是为了澄清是否有可能。
以下是文件夹结构:
查看/主页/数据/ ViewData.cshtml
在控制器中,如下:
控制器/ HomeController.cs
答案 0 :(得分:0)
您可以使用ASP.NET MVC Areas来实现此目标:
现在您可以像这样访问它 - http://localhost:51118/Home/Data/ViewNoData
如果由于某种原因你不想使用区域,你可以在RouteConfig.cs中调整路由
routes.MapRoute(
name: "Default",
url: "Home/{controller}/{action}/{id}",
defaults: new { controller = "Data", action = "ViewNoData", id = UrlParameter.Optional }
);