我在.NET 3.5框架中有一个MVC应用程序,它是在IIS 7中托pipe的。我已经在IIS 7的根目录中创build了应用程序。我的应用程序工作正常,当我尝试访问path“ http:// localhost ” 。 但是,如果我尝试访问“视图”文件夹下的任何文件,我得到follwoing错误。
无法find该资源。 说明:HTTP 404.您正在查找的资源(或其某个依赖项)可能已被删除,名称已更改或暂时不可用。 请检查以下URL并确保拼写正确。
我已经尝试了所有的方法和手段来修复这个错误,但徒劳无功。 如果anybdy可以帮助我确定问题,将不胜感激。
谢谢
在ASP.NET MVC中,您不会直接浏览到您的视图文件。 您必须使用在您的站点的Application_Start()事件中设置的路由。
例如,一个新的ASP.NET MVC项目默认在global.asax中添加这个路由:
routes.MapRoute( "Default", "{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = "" } );
它还添加了一个默认的控制器和操作:
public class HomeController : Controller { public ActionResult Index() { ViewData["Message"] = "Welcome to ASP.NET MVC!"; return View(); } }
在Views / Home下的View命名为Index.aspx。
而不是使用地址http://mysite.com/Views/Home/Index.aspx您可以使用http://mysite.com/Home/Index
您可以在这里了解更多有关路由的信息: http : //www.asp.net/learn/mvc/#MVC_Routing
我想添加一些东西:我很确定,你真正需要的是在你的IIS服务器上添加.ASPX重载。 如果您使用的是IIS6,可以通过以下步骤完成:
没有上述步骤,您的ASP.NET MVC将无法正常工作。 我曾经有过这方面的经验,我现在的主持人ASPHostCentral ,build议我上面的那些步骤:)
祝你好运!
我发现了这个错误的一个新的原因:如果您使用Resharper它build议更改事件处理程序的名称,但如果您单击以yes是不会更改Global.asax文件下的对象的事件名称。 我似乎没有在框架中的对象,但它是可感知的
如果您真的必须看到这些文件,例如,如果它们是纯文本的.html文件,则可以使用Ignore路由:
routes.IgnoreRoute("Views/{name}.html");
这将允许您直接浏览生活在Views文件夹中的任何.html文件,而不需要定义路由,控制器等等。路由系统如何轻松地进入和退出,取决于您想要的内容。
您可以在这里学习4个步骤: http : //www.asp.net/learn/mvc/#MVC_Routing