Asp.net mvc MVC视图间歇性加载
我在MVC上处于全新的测试和学习模式 我构建了一个Asp.net mvc MVC视图间歇性加载,asp.net-mvc,Asp.net Mvc,我在MVC上处于全新的测试和学习模式 我构建了一个TestController和一个Test1视图,并将RouteConfig更改为default=Test,Index。不过,这是可行的 如果我在TestController Index ActionResult行中断: return View("~/Views/Test/Test1.cshtml"); 然后继续,它将显示我的Test1view页面(这是一个新的、普通的视图,没有布局,在div中显示“哟!”) 如果我删除了中断,修改Test1查
TestController
和一个Test1
视图,并将RouteConfig更改为default=Test,Index。不过,这是可行的
如果我在TestController Index ActionResult
行中断:
return View("~/Views/Test/Test1.cshtml");
然后继续,它将显示我的Test1
view页面(这是一个新的、普通的视图,没有布局,在div中显示“哟!”)
如果我删除了中断,修改Test1
查看页面(比如在“Yow!”中添加一个字符),然后在没有中断的情况下重新运行,我会得到一个404
错误
如果我重置中断并重新运行,点击中断并继续,它将显示更新的Test1
视图
这种情况经常发生
为什么对
Test1
视图进行一个小的修改会导致本地主机找不到该视图?为什么中断并继续会导致它找到视图?如果在Web
选项卡上转到ASP MVC项目的属性(右键单击项目,选择属性),则会出现开始操作
部分。默认情况下,当前页面处于选中状态,这意味着如果使用当前打开的视图开始调试,VS将尝试导航到该视图的路径
让我解释一下:
- 假设您创建了一个带有主控制器和
索引视图,以及典型的/controller/action/id路由。如果你有
选择“当前页面”作为“启动操作”选项,然后启动
调试打开索引视图后,VS将尝试打开URL,如
http://localhost:59774/Views/Home/Index.cshtml
- 但正如您所知,该URL无法正常工作,因为您需要符合
在MVC项目中定义的管线。例如
或http://localhost:59774/Home/Index
将是主控制器中索引操作的有效URLhttp://localhost:59774/
- 这就是为什么在打开视图时启动或重新启动调试
找一辆404。但是,当您打开控制器时,没有当前页面,VS将尝试导航到应用程序的根目录(如
)http://localhost:59774/
开始操作
选项,改为选择特定页面,并将其保留为空。这将导致根目录被打开,与从控制器开始调试时相同
另外,请记住,您可以对视图进行此类更改,而无需重新编译或重新启动调试。我真的不明白您说的是什么,但请在应用程序启动时检查目录,它从您在visual studio的位置开始。也许这就是你说的“重新运行”是什么意思?您正在刷新页面吗?或者再次点击从VS开始?重新运行=停止调试并重新启动调试。页面刷新不会更改404。新数据:它与选择的文档有关。如果我在选择视图的情况下启动调试,在视图更改之后,它会给出404错误。如果在视图更改后使用选定的控制器启动调试,则可以正常工作。所以“中断/继续”是不相关的,这恰好与选择控制器文档一致。那么,也许这只是VS的一种“行为”?但那是怎么回事?我的意思是,至少我现在可以继续了,但是仅仅因为视图是在VS中选择的,所以让它不工作是没有意义的。这是一个很好的解释。我让它按照指示工作。它提供了关于VS如何与MVC一起工作的一些很好的见解。非常感谢@旅行者,我很高兴这能帮上忙。记住,如果答案对你有帮助,你可以接受:)