MVC 4路由到控制器
MVC 4 routing to a controller
我是 MVC 的新手,我试图通过创建一个练习网站来解决这个问题,该网站将成为用于查看和上传图像的画廊网站。我遇到的问题是无法让路由正常工作。
这是我的路由代码和解决方案树的 link:
https://imgur.com/a/Oc1Tt?
我是否错误地设置了视图和控制器?
我得到的错误是:未找到视图 'Index' 或其母版,或者没有视图引擎支持搜索的位置。搜索了以下位置:
感谢任何意见
路由通过将传入请求转换为 路由值 或使用路由值生成 URL 来工作。路由值要么设置为 URL 本身的参数,要么设置为默认值,或者两者兼而有之(其中默认值使 URL 参数可选)。
您尚未在路线中设置任何路线值。由于您在 URL 中没有路由参数,因此需要设置默认值(MVC 需要控制器和操作)。
routes.MapRoute(
name: "Gallery",
url: "Gallery/Index",
defaults: new { controller = "Gallery", action = "Index" }
);
也就是说,您的 Default
路线已经涵盖了这条 URL。如果您希望 Default
路由不涵盖的行为,您只需要添加自定义路由。
此外,如果更改视图名称使其与操作方法的名称不匹配,则必须从操作方法中明确指定名称。
public ActionResult Index()
{
return View("~/Views/Gallery/GalleryView.cshtml");
}
默认情况下 MVC 使用约定。将视图命名为 Index.cshtml
而不是 GalleryView.cshtml
要简单得多,因此您可以从操作方法中直接 return View
。
public ActionResult Index()
{
return View();
}
我是 MVC 的新手,我试图通过创建一个练习网站来解决这个问题,该网站将成为用于查看和上传图像的画廊网站。我遇到的问题是无法让路由正常工作。
这是我的路由代码和解决方案树的 link: https://imgur.com/a/Oc1Tt?
我是否错误地设置了视图和控制器?
我得到的错误是:未找到视图 'Index' 或其母版,或者没有视图引擎支持搜索的位置。搜索了以下位置:
感谢任何意见
路由通过将传入请求转换为 路由值 或使用路由值生成 URL 来工作。路由值要么设置为 URL 本身的参数,要么设置为默认值,或者两者兼而有之(其中默认值使 URL 参数可选)。
您尚未在路线中设置任何路线值。由于您在 URL 中没有路由参数,因此需要设置默认值(MVC 需要控制器和操作)。
routes.MapRoute(
name: "Gallery",
url: "Gallery/Index",
defaults: new { controller = "Gallery", action = "Index" }
);
也就是说,您的 Default
路线已经涵盖了这条 URL。如果您希望 Default
路由不涵盖的行为,您只需要添加自定义路由。
此外,如果更改视图名称使其与操作方法的名称不匹配,则必须从操作方法中明确指定名称。
public ActionResult Index()
{
return View("~/Views/Gallery/GalleryView.cshtml");
}
默认情况下 MVC 使用约定。将视图命名为 Index.cshtml
而不是 GalleryView.cshtml
要简单得多,因此您可以从操作方法中直接 return View
。
public ActionResult Index()
{
return View();
}