ASPdebug变量输出ASP页⾯中输出打印.NetMVCModel数据
2021-07-16 07:24:11
之前写的太繁琐,这⾥总结⼀下:
1. 新增 Newtonsoft.Json依赖库(dll⽂件)
2. 编辑ASP页⾯,新增打印语句。
1. ⼀个可以执⾏JavaScript的地⽅(我到了document 的 ready ⽅法)
2. 写 console.log(要打印的变量) 语句,⾄于要打印的变量,⽤ ASP 的表达式获取<%: xxx %>
3. demo
$(document).ready(function(){
console.log("test 123");// 先打印简单string确保会执⾏到本处的JS
console.log('<%: Newtonsoft.Json.JsonConvert.SerializeObject(Model) %>'.replace(/"/g,""));
/
/ ... 原本就有的语句
});
.Net MVC Controller/Action 最终可以return⼀个view。该view中会对Model中的数据进⾏渲染(服务端),然后返回渲染后的HTML到浏览器端(⽤户端)。
也可以直接返回 JSON response。
mvc的controller对于前⼀种返回⽅式,接⼝规则/调试有点⿇烦。
如果可以在 view 页⾯中⽤JS或ASP表达式等⽅式打印出所有的Model数据就好了。
console.log('<%: Newtonsoft.Json.JsonConvert.SerializeObject(Model) %>'.replace(/"/g, ""));
// 等效于
<%@ Namespace="Newtonsoft.Json" %>
console.log('<%: JsonConvert.SerializeObject(Model) %>'.replace(/"/g, ""));
以上语句得到的效果:
先⽤C#的JSON序列化库Newtonsoft.Json对整个Model对象进⾏序列化(需要对该项⽬添加Newtonsoft.Json依赖库),
得到了Model对象对应的JSON字符串。
然后⽤JS的console.log打印出了这个字符串值。
console.log('字符串')
// 字符串如何得到?使⽤ASP表达式
<%:变量XXX%>
// 变量XXX 为什么包了⼀层JSON转换⽅法?
如果直接打印`'<%: Model %>'`JS只能把该类型的类型名打印出来(namespaceName.className)
想看的是该对象的数据,所以⽤Newtonsoft.Json序列化该对象为JSON字符串后才打印。
其中<%: 变量名 %> 是ASP表达式,可以输出⼀个变量的值。
要注意的是:
'<%: xxx %>' 不是 <%" xxx %> (不过也不⼀定,看你打印的变量值类型)
要打印的变量可以是 Model 也可以是
上例中打印了整个Model数据的序列化结果的JSON字符串,其中的引号被打印成了"。所以使⽤了JS的字符串函数
replace(regex, str),替换了引号。(如果你不需要,可以去掉)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。