2012-01-12 201 views
2

我不知道为什么这个错误发生在调试项目后,即使代码是默认的。无法找到该资源。 ASP.NET MVC3

控制器

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但通过浏览器访问主页的罚款。 (http:// localhost:58323/home)

我用Google搜索了一下,并提示问题出在全局。但那很奇怪,我不记得做任何改变。

全球

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 
     ); 

    } 

得到任何帮助。谢谢

回答

5

我认为你只需要设置你的视觉工作室设置,以便视图设置为开始页面。右键单击该项目并转到属性,然后转到Web选项卡。 “Views/Home/Index.cshtml”中选择的“特定页面”单选按钮是否被设置为值?将其更改为使用启动网址。我个人更喜欢不让调试器启动浏览器并使用不要打开页面。

+0

Omg,你是一个救星!非常感谢@Matt Murphy – aHaH 2012-01-12 03:52:32

+0

嗨,我也遇到同样的问题,但是当我改变它使用一个开始URL,然后保存我得到了一个错误消息“在无效指定的起始URL” – 2012-12-04 12:40:42

4

右键点击你的Web项目 - >属性 - >网络

检查,你必须开始行动设置到具体页面,在该领域没有任何价值。

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

0

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

解决问题的方法是: 考虑一个名为index.ascx的视图,该视图应该链接到名为HomeController的Controller。 在Views文件夹下应该有一个文件夹名称Home(与控制器有关),并且index.ascx应该位于Home文件夹中。

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