我正在研究MVC5。
我已经拥有了我的控制器及其各自的观点。如果我点击一个视图并在我的浏览器上打开它,一切都很好,但是,每当我在VS上正常启动项目时,我的浏览器就会打开,例如,这个链接:
http://localhost:50738/Views/Profile/Index.cshtml
但是,每当我直接打开视图时,我都会:
http://localhost:50738/Profile或http://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 } );
}
}
}
答案 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如何工作的更好解释。