ASP.NET中MVC从后台控制器传递数据到前台视图的方式

   需要添加相应的命名空间:

  复制代码 代码如下:

  using System;

  using System.Diagnostics;

  using System.Reflection;

  如果仅是获取当前方法名,可以使用如下代码:

  代码如下:

  public static void WriteSysLog(int level, string content)

  {

  MethodBase mb = MethodBase.GetCurrentMethod();

  string systemModule = Environment.NewLine;

  systemModule += "模块名:" + mb.Module.ToString() + Environment.NewLine;

  systemModule += "命名空间名:" + mb.ReflectedType.Namespace + Environment.NewLine;

  //完全限定名,包括命名空间

  systemModule += "类名:" + mb.ReflectedType.FullName + Environment.NewLine;

  systemModule += "方法名:" + mb.Name;

  Console.WriteLine("LogDate: {0}{1}Level: {2}{1}systemModule: {3}{1}content: {4}", DateTime.Now, Environment.NewLine, level, systemModule, content);

  Console.WriteLine();

  }

  但一般情况下是获取此记录日志方法的调用方,因此需要使用下面的代码:(此方法仅为演示)

  代码如下:

  public static void WriteSysLog(string content)

  {

  const int level = 1000;

  StackTrace ss = new StackTrace(true);

  //index:0为本身的方法;1为调用方法;2为其上上层,依次类推

  MethodBase mb = ss.GetFrame(1).GetMethod();

  StackFrame[] sfs = ss.GetFrames();

  string systemModule = Environment.NewLine;

  systemModule += "模块名:" + mb.Module.ToString() + Environment.NewLine;

  systemModule += "命名空间名:" + mb.DeclaringType.Namespace + Environment.NewLine;

  //仅有类名

  systemModule += "类名:" + mb.DeclaringType.Name + Environment.NewLine;

  systemModule += "方法名:" + mb.Name;

  Console.WriteLine("LogDate: {0}{1}Level: {2}{1}systemModule: {3}{1}content: {4}", DateTime.Now, Environment.NewLine, level, systemModule, content);

  Console.WriteLine();

  }

  对于这一点儿,感觉有意思的是Main的调用方

  代码如下:

  System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)

  通过

  代码如下:

  StackTrace ss = new StackTrace(true);

  StackFrame[] sfs = ss.GetFrames();

  可以得知.NET程序的执行顺序:

  代码如下:

  System.Threading.ThreadHelper.ThreadStart()

  System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)

  Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()

  System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)

  然后进入方法Main中。

  另外,从 MethodBase 类 还可以获取很多其他属性,可以自行定位到System.Reflection.MethodBase 查看。

  使用反射可以遍历获得类的所有属性名,方法名,成员名,其中一个有趣的小例子:通过反射将变量值转为变量名本身。

时间: 2024-08-04 08:59:41

ASP.NET中MVC从后台控制器传递数据到前台视图的方式的相关文章

ASP.NET中MVC从后台控制器传递数据到前台视图的方式_实用技巧

本文实例讲述了ASP.NET中MVC从后台控制器传递数据到前台视图的方式.分享给大家供大家参考.具体分析如下: 数据存储模型Model: 复制代码 代码如下: public class CalendarEvent { public string id { get; set; } public DateTime start { get; set; } public DateTime end { get; set; } public string backgroundColor { get; set

asp.net中在用ajax格式传递数据到aspx页面时出现乱码_实用技巧

 asp.net中在用ajax格式传递数据到aspx页面时有时会出现乱码,以下为解决方法 js中 : 复制代码 代码如下: XmlHttp.open("POST", "test.aspx", false); XmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); XmlHttp.send("QueryName=&qu

ASP.NET MVC之从控制器传递数据到视图四种方式(一)

前言 本系列开始着手讲述ASP.NET MVC,也算是自己对基础的回顾以及进一步深入学习,保证每天发表一篇该系列文章,关于基本知识则不再叙述,园子有关文章不胜枚举,这一系列若有叙述不当或错误之处,欢迎指出以及批评. 前奏 新建基本项目在Models文件夹下定义如下类: public class Person { public int Id { get; set; } public string Name { get; set; } public string BlogAddress { get;

ASP.NET MVC 5 学习教程:控制器传递数据给视图

原文 ASP.NET MVC 5 学习教程:控制器传递数据给视图 起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 创建连接字符串 通过控制器访问模型的数据 生成的代码详解 使用 SQL Server LocalDB Edit方法和Edit视图详解 添加查询 Entity Framework 数据迁移之添加字段 添加验证 Details 和 Delete 方法详解 在讨论数据库和模型之前,让我们先说说容控制器传递数据给视图

ASP.NET中MVC传递数据的几种形式总结_实用技巧

本文实例讲述了ASP.NET中MVC传递数据的几种形式.分享给大家供大家参考.具体如下: 在Asp.net mvc开发中,Controller需要向View提供Model,然后View将此Model渲染成HTML.这篇文章介绍三种由Controller向View传递数据的方式,实现一个DropDownList的显示. 第一种:ViewData ViewData是一个Dictionary.使用非常简单,看下面代码: public ActionResult ViewDataWay(int id) {

asp.net中mvc使用ajax提交参数的匹配问题解决探讨

本文为大家介绍下使用javaScript解决asp.net中mvc使用ajax提交参数的匹配问题,遇到类似情况的朋友可以参考下,希望对大家有所帮助   想到在asp.net的mvc中如果使用ajax向服务端传递参数时如果参数是一个类或者是个数组(或List集合)以及更复杂的对象时,服务端总是会发 生取不到值的情况,当然网上也有很多解决的例子,但都是在服务端想办法来解决的(比如将json转换为字符串,再在服务端反序列化为一个对象),为何不能 在客户端就把这个问题搞定. 其实问题没那么复杂,那是因为

asp.net中MVC借助Iframe实现无刷新上传文件实例_实用技巧

本文实例讲述了asp.net中MVC借助Iframe实现无刷新上传文件的方法.分享给大家供大家参考.具体实现方法如下: html: 复制代码 代码如下: <div id="uploadwindow" style="display: none;">     <form action="/ShopActivitys/ImportActivityItems" id="form1" name="form1&

ASP.NET MVC3控制器传递匿名对象到视图实例

ASP.NET MVC3 + Entity Framework项目中,从控制器传递匿名对象到视图非常常见,原本以为用dynamic能轻松搞定,最后发现我错了: Controller:  代码如下 复制代码 public ActionResult Index() {     testContext context = new testContext();     dynamic data = context.People         .Join(context.Pets, person =>

kindeditor编辑器-在asp.net中如何在后台获取kindeditor输入的内容

问题描述 在asp.net中如何在后台获取kindeditor输入的内容 js代码: var editor; KindEditor.ready(function(K) { editor = K.create('textarea[name=""content""]' { allowFileManager : true resizeType : 1 allowPreviewEmoticons : false allowImageUpload : true items :