MVC 4路由到控制器

时间:2017-10-15 02:01:55

标签: asp.net-mvc asp.net-mvc-4 routing asp.net-mvc-routing

我是MVC的新手,我正在努力通过创建一个练习网站,这个网站将成为查看和上传图片的图库网站。我遇到的问题是我无法使路由正常工作。

以下是我的路由代码和解决方案树的链接: https://imgur.com/a/Oc1Tt

我是否错误地设置了视图和控制器?

我得到的错误是:找不到视图'索引'或其主控或没有视图引擎支持搜索的位置。搜索了以下位置:

感谢任何输入

1 个答案:

答案 0 :(得分:0)

路由通过将传入请求转换为路由值或使用路由值生成URL来工作。路由值可以设置为URL本身的参数,默认值或两者(默认值使URL参数可选)。

您尚未在路线中设置任何路线值。由于URL中没有路由参数,因此需要设置默认值(MVC需要控制器和操作)。

routes.MapRoute(
    name: "Gallery",
    url: "Gallery/Index",
    defaults: new { controller = "Gallery", action = "Index" }
);

也就是说,您的Default路线已涵盖此网址。如果您需要Default路线未涵盖的行为,则只需添加自定义路线。

此外,如果更改视图名称使其与操作方法的名称不匹配,则必须从操作方法中明确指定名称。

public ActionResult Index()
{
    return View("~/Views/Gallery/GalleryView.cshtml");
}

默认情况下,MVC使用约定。将视图命名为Index.cshtml而不是GalleryView.cshtml更简单,因此您只需从操作方法返回View即可。

public ActionResult Index()
{
    return View();
}