为什么MVC无法正确找到我的观点?

时间:2015-06-04 10:28:23

标签: asp.net-mvc

我正在研究MVC5。

我已经拥有了我的控制器及其各自的观点。如果我点击一个视图并在我的浏览器上打开它,一切都很好,但是,每当我在VS上正常启动项目时,我的浏览器就会打开,例如,这个链接:

http://localhost:50738/Views/Profile/Index.cshtml

但是,每当我直接打开视图时,我都会:

http://localhost:50738/Profilehttp://localhost:50738/Profile/Index

在RouteConfig文件中我刚才说我希望默认情况下显示配置文件,而不是主页。为什么'/ Views /'出现在我的浏览器上?

代码:

namespace WorkTimeManager.Presentation 
{ 
    public class RouteConfig 
    { 
        public static void RegisterRoutes(RouteCollection routes)
        {             
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                name: "Default", 
                url: "{controller}/{action}/{id}", 
                defaults: new { controller = "Indicators", action = "Index", id = UrlParameter.Optional } ); 
        }
    } 
}

2 个答案:

答案 0 :(得分:1)

这是因为您已将“开始操作”设置为Web项目中的当前页面。因此,当您启动Web应用程序时,它将尝试加载您当前在Visual Studio中查看的页面。

要解决此问题,请在解决方案中右键单击您的Web项目,然后单击属性,然后单击Web,您将看到“开始操作 - 选择当前页面”单选按钮。

将其更改为特定页面,然后输入您的主页网址,例如http://localhost:50738/Index然后,每当您从Visual Studio启动Web应用程序时,它将在该页面上打开,而不是尝试打开当前页面。

答案 1 :(得分:0)

当您点击.cshtml文件时("点击视图"),您只需打开描述该视图的文件,您就不会打开它通过' mvc'。

MVC没有将.cshtml文件发送到浏览器,控制器会读取视图并呈现它。

因此,Views/Profile/Page.cshtml中的文件可能由控制器操作ProfileController.Page()呈现(或者可能不是......但在最简单的情况下),其URL为/Profile/Page

这是一个简短的总结,有关MVC如何工作的更好解释。