MVC视图间歇性加载

时间:2014-01-08 04:11:49

标签: asp.net-mvc

我在MVC上进行了全新的测试和学习模式。

我构建了一个TestController和一个Test1视图,并将RouteConfig更改为default = Test,Index。但这有用......

如果我突破TestController Index ActionResult行:

return View("~/Views/Test/Test1.cshtml");

然后继续,它显示我的Test1视图页面(这是一个新的,普通的视图,没有布局,在div中说“哇!”)

如果我然后删除了中断,请修改Test1视图页面(比如将一个字符添加到“Yow!”),然后在没有中断的情况下重新运行,我收到404错误。

如果我重置中断并重新运行,请点击中断并继续,它会显示更新后的Test1视图。

这种情况一直发生。

为什么对Test1视图进行小的修改会导致localhost找不到视图?为什么要休息并继续让它找到视图?

1 个答案:

答案 0 :(得分:1)

如果您在Web标签上转到ASP MVC项目的属性(右键单击项目,选择属性),则会有Start Action部分。默认情况下,选择当前页面,这意味着如果您使用当前打开的视图开始调试,VS将尝试导航到该视图的路径。

让我解释一下:

  • 让我们假设您使用Home控制器创建一个新的MVC项目 索引视图和典型的/ controller / action / id路由。如果你有 "当前页面"选择作为"开始操作"的选项,然后开始 在打开Index视图的调试中,VS会尝试打开一个像这样的URL http://localhost:59774/Views/Home/Index.cshtml

  • 但是如您所知,该网址因您需要符合要求而无法正常工作 MVC项目中定义的路由。例如
    对于家庭控制器中的索引操作,http://localhost:59774/Home/Indexhttp://localhost:59774/将是有效的网址

  • 这就是为什么当您打开视图启动或重新启动调试时的原因 得到404.但是当你打开控制器时,没有当前页面,VS会尝试导航到应用程序的根目录(如http://localhost:59774/

您只需更改项目的Start Action选项,选择特定页面,然后将其留空。这将导致root被打开,就像从控制器开始调试一样。

另外,请记住,您可以对视图进行这些更改,而无需重新编译或重新启动调试。