.Net 5 .Net Core 3.1 mvc 调试js或cshtml 视图运行时编译 解决方案

JavaScript028

.Net 5 .Net Core 3.1 mvc 调试js或cshtml 视图运行时编译 解决方案,第1张

如果想在mvc项目里调试js或更改下视图,在vs里不需要重启项目的。但是Core 3是不一样的,默认是没有这功能的,需要手动添加配置。

各种网上查找到了资料:

基本上看到官网说明,就可以配置好了。好人做到底,我演示下:

完成!

我从来只用VS调试,因为毕竟浏览器不是全功能的调试器,不如VS用着习惯。

* Chrome几年前调试过,忘了是否需要设置了,也许直接Attach就行,这里就留给你自己研究了。

调试IE的话,你需要注意2点:

首先是你必须让IE本身允许调试;

其次你要让VS挂上有“脚本”(英文版显示为"Script"类调试目标的进程)。

下面看图讲解:

1 调试器打开attach界面:

你会发现所有ie进程的调试类型都是native(即x86,x64)

2 此时设置IE高级选项,勾掉禁用脚本调试

3  上面设置对话框确定后,刷新1的attach界面,发现调试类型多出了“脚本”:

4 然后直接就和一般挂进程调试一样了。

上面就是我在本网页编辑答复的时候,现场调试的结果,这个edui15貌似是某个编辑控件,我鼠标一晃就触发mouseover事件的断点了。

*虽然我在家里演示用的是 win8.1+vs2013+IE11, 但是由于以上是通用设置,并且我本身也有使用vs2008/vs2010 在win7上对IE8,9,10成功的经历,所以放心一定行。

(本文仅供本人记录,并非自主内容产出,如有错误,欢迎纠正!)

MVC定义: MVC是一种架构模式,可以抽象成三个部分:M 模型、V 视图、C 控制器。

一个事件发生的过程(通信单向流动):

js传统开发模式中,大多基于事件驱动:

故js中的MVC 特点 是: 单向流动、事件驱动

一)模型

模型存放着应用的所有数据对象(业务数据、数据校验、增删查改)

数据是 面向对象 的,控制器请求模型读写数据时,模型就将数据包装成模型实例。任何定义在这个数据模型上的函数或逻辑都可以直接被调用。

模型在MVC设计思想中与视图应是解耦的。

二)视图

视图是呈现给用户的,在MVC思想中主要体现的是:视图以 观察者模式 监视模型,以获取最新的数据。故页面首次加载时,是从接收模型的数据开始。

三)控制器

控制器是模型与视图间的桥梁,集中式地配置和管理事件分发、模型分发、视图分发、权限控制和异常处理等。

页面加载完成后,控制器会监听视图的用户交互,一旦发生交互,控制器做出对视图的选择,触发控制器的事件处理机制,去派发新的事件,通知模型更新数据。

优点: 耦合性低、重用性高、生命周期成本低、部署快、可维护性高、有利软件工程化管理

缺点:

没有明确的定义 (MVC模型需要精巧的设计,对中小型项目并不友好,因视图与模型有强制分离的需求,故调试时也比较麻烦)

增加系统结构和实现的复杂性 (过多的更新操作,严格地按照MVC分离反倒会使运行效率降低)

视图与控制器间的过于紧密的连接 (视图需要与控制器配合使用,这就导致了独立重用的难度)

一般高级的界面工具或构造器不支持模式