无法找到该资源。 ASP.NET MVC3

时间:2012-01-12 02:09:06

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

我不知道为什么在调试项目后出现此错误,即使代码是默认的。

控制器

public class HomeController : Controller
{
    //
    // GET: /Home/

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

}

查看

 @{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <title>Index</title>
</head>
<body>
    <div>
        Hi
    </div>
</body>

不知何故,或者更确切地说,在调试之后,请求的URL始终是/Views/Home/Index.cshtml,但通过浏览器访问Home很好。 (HTTP://本地主机:58323 /家庭)

我用谷歌搜索,解决方案暗示问题出在全球。但那很奇怪,我不记得对它进行任何改动。

全局

  public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );

    }

感谢任何帮助。谢谢

3 个答案:

答案 0 :(得分:5)

我认为您只是设置了visual studio设置,以便将视图设置为起始页面。右键单击项目并转到属性,然后转到Web选项卡。是否将“Views / Home / Index.cshtml”中的“特定页面”单选按钮设置为值?将其更改为使用启动网址。我个人不希望调试器启动浏览器并使用不要打开页面。

答案 1 :(得分:4)

右键点击您的网络项目 - &gt;属性 - &gt;网络

检查您是否将开始操作设置为特定页面,但该字段中没有值。

我的猜测是你将开始动作设置为当前页面。

答案 2 :(得分:0)

如果Views文件夹中文件夹结构的层次结构不正确,则可能会导致此错误。 如果要通过右键单击“视图”文件夹来添加视图。添加的新视图可能会错误地放置在文件夹层次结构中。

解决问题的方法是: 考虑一个名为index.ascx的视图,该视图应该链接到名为HomeController的Controller。 在Views文件夹下应该有一个文件夹名称Home(与Controller相关)和 index.ascx应该驻留在Home文件夹中。

添加视图的最佳方法是在公共方法旁边单击鼠标右键,这将在上下文菜单中显示“创建视图”选项。如果以这种方式创建视图,则会自动创建文件夹层次结构。