栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

ASP debug 变量输出 ASP页面中输出打印 .Net MVC Model 数据

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ASP debug 变量输出 ASP页面中输出打印 .Net MVC Model 数据

2021-07-16 07:24:11

之前写的太繁琐,这里总结一下:

  1. 新增 Newtonsoft.Json依赖库(dll文件)
  2. 编辑ASP页面,新增打印语句。
    • 找一个可以执行JavaScript的地方(我找到了document 的 ready 方法)
    • 写 console.log(要打印的变量) 语句,至于要打印的变量,用 ASP 的表达式获取<%: xxx %>
    • 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。

对于前一种返回方式,接口规则/调试有点麻烦。

如果可以在 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.xxx
  • 上例中打印了整个Model数据的序列化结果的JSON字符串,其中的引号被打印成了"。所以使用了JS的字符串函数replace(regex, str),替换了引号。(如果你不需要,可以去掉)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/954693.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号