
C#/.NET编程
文章平均质量分 54
C#/.NET编程
pan_junbiao
这个作者很懒,什么都没留下…
展开
-
ASP.NET MVC中几种常用ActionResult
一、定义MVC中ActionResult是Action的返回结果。ActionResult 有多个派生类,每个子类功能均不同,并不是所有的子类都需要返回视图View,有些直接返回流,有些返回字符串等。ActionResult是一个抽象类,它定义了唯一的ExecuteResult方法,参数为一个ControllerContext,下面为您介绍MVC中的ActionResult 的用法。二、什...转载 2018-11-28 10:40:35 · 1708 阅读 · 0 评论 -
ASP.NET MVC使用Action过滤器处理方法
Action过滤器在动作方法之前及之后运行,Result过滤器在动作结果被执行之前和之后运行。1、Action过滤器在ASP.NET MVC中创建MvcApp项目,创建文件夹Filter,然后新建类MyActionFilterAttribute(为了遵循默认的约定,名称以Attribute结尾),继承自ActionFilterAttribute类。ActionFilterAttribute...原创 2018-11-27 17:20:21 · 1564 阅读 · 0 评论 -
ASP.NET MVC使用Exception过滤器处理异常
ASP.NET MVC使用Exception过滤器处理异常,Exception过滤器只在另一个过滤器、动作方法、动作结果弹出异常时运行。示例:使用Exception过滤器处理异常信息。创建MyHandleErrorAttribute类,继承HandleErrorAttribute类:using System;using System.IO;using System.Text;u...原创 2018-11-27 15:03:42 · 2039 阅读 · 0 评论 -
ASP.NET MVC使用AllowAnonymous特性跳过授权验证
AllowAnonymous表示一个特性,该特性用于标记在授权期间要跳过 System.Web.Mvc.AuthorizeAttribute 的控制器和操作。1、在Authorize过滤器类中添加如下代码//判断是否跳过授权过滤器if (filterContext.ActionDescriptor.IsDefined(typeof(AllowAnonymousAttribute), t...原创 2018-11-27 11:43:10 · 29602 阅读 · 0 评论 -
ASP.NET MVC使用Authorize过滤器验证用户登录
ASP.NET MVC使用Authorize过滤器验证用户登录。Authorize过滤器首先运行在任何其它过滤器或动作方法之前,主要用来做登录验证或者权限验证。示例:使用Authorize过滤器实现简单的用户登录验证。1、创建登录控制器LoginController/// <summary>/// 登录控制器/// </summary>[AllowAno...原创 2018-11-27 10:30:40 · 16814 阅读 · 3 评论 -
ASP.NET MVC中Filter过滤器的使用
MVC Filter是典型的AOP(面向切面编程)应用,在ASP.NET MVC中的4个过滤器类型,如下:过滤器类型 接口 默认实现 描述 Action IActionFilter ActionFilterAttribute 在动作方法之前及之后运行 Result IResultFilter ActionFilterAttribute ...原创 2018-11-26 11:00:22 · 8333 阅读 · 0 评论 -
Windows服务的安装与卸载
Windows服务的安装与卸载。1、服务信息的设置首先创建一个Windows服务项目,本示例中的项目名称为:MyTest.WindowsService。编写服务启动和关闭方法,记录一些日志信息,方便后续查看服务的状态。using System;using System.ServiceProcess;using System.Text;using System.IO;na...原创 2018-11-15 16:57:06 · 2257 阅读 · 0 评论 -
C#对文本的写入与读取操作
C#对文本的写入与读取操作。示例:使用txt文本模仿日志功能的写入与读取操作。1、写入操作/// <summary>/// 写入日志/// </summary>public static void WriteLog(string message){ string path = AppDomain.CurrentDomain.BaseDirect...原创 2018-11-15 14:17:00 · 751 阅读 · 0 评论 -
ASP.NET Web API中对Headers的操作
ASP.NET Web API中对Headers的操作。1、获取请求头信息string value = HttpContext.Current.Request.Headers["name"];2、添加响应头信息HttpResponseMessage result = new HttpResponseMessage();result.Headers.Add("name", "v...原创 2018-11-14 16:41:20 · 22271 阅读 · 0 评论 -
ASP.NET Web API实现简单的文件下载与上传
ASP.NET Web API实现简单的文件下载与上传。首先创建一个ASP.NET Web API项目,然后在项目下创建FileRoot目录并在该目录下创建ReportTemplate.xlsx文件,用于下面示例的使用。1、文件下载示例:实现报表模板文件下载功能。1.1 后端代码/// <summary>/// 下载文件/// </summary>[...原创 2018-11-14 14:32:24 · 19412 阅读 · 0 评论 -
ASP.NET Web API运行提示:找到了与该请求匹配的多个操作的解决方法
ASP.NET Web API运行提示:找到了与该请求匹配的多个操作。打开App_Start目录下的WebApiConfig.cs配置文件可以看到,路由中默认的配置信息。config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: ...原创 2018-11-14 10:11:04 · 8605 阅读 · 0 评论 -
ASP.NET Web API构建一个简单的应用
使用ASP.NET Web API构建一个简单的应用。示例:使用ASP.NET Web API提供获取用户列表和用户信息接口。1、在Models目录下创建用户信息类(UserModel.cs)/// <summary>/// 用户信息类/// </summary>public class UserModel{ /// <summary&g...原创 2018-11-13 17:42:10 · 697 阅读 · 0 评论 -
C#使用QRCoder.dll生成二维码
1、项目添加QRCoder.dll的引用使用NuGet添加该引用步骤:右键点击项目的,引用 —> 管理NuGet程序包 —> 在搜索框中输入:QRCoder —> 安装。2、创建二维码公共处理类(QRCoderHelper.cs)using System;using System.IO;using System.Drawing;using System.Dra...原创 2018-10-07 11:26:12 · 10555 阅读 · 0 评论 -
.NET中图片以Base64方式输出
Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式。此时,采用Base64编码具有不可读性,需要解码后才能阅读。1、.NET中图片以Base64方式...原创 2018-10-06 18:49:46 · 8146 阅读 · 0 评论 -
C#中MemoryStream类的介绍
MemoryStream位于System.IO命名空间,为系统内存提供流式的读写操作。常作为其他流数据交换时的中间对象操作。1、MemoryStream类封装一个字节数组,在构造实例时可以使用一个字节数组作为参数,但是数组的长度无法调整。使用默认无参数构造函数创建实例,可以使用Write方法写入,随着字节数据的写入,数组的大小自动调整。2、在对MemoryStream类中数据流进行读取时,...转载 2018-10-06 17:52:54 · 43024 阅读 · 1 评论 -
C#中byte[]数组的读取与写入文件
字节(Byte)是计算机信息技术用于计量存储容量的一种计量单位,通常情况下一字节等于八位,也表示一些计算机编程语言中的数据类型和语言字符。C#中byte[]数组的读取与写入文件。1、创建文件公共处理类(FileHelper.cs)using System.IO;/// <summary>/// 文件公共处理类/// </summary>public ...原创 2018-10-06 17:16:20 · 28007 阅读 · 0 评论 -
C#实体类与XML相互转换
1、实体类与XML相互转换将实体类转换成XML需要使用XmlSerializer类的Serialize方法,将实体类序列化。把XML转换成相应的实体类,需要使用到XmlSerializer类的Deserialize方法,将XML进行反序列化。创建XML序列化公共处理类(XmlSerializeHelper.cs)using System;using System.IO;usi...原创 2018-10-04 17:11:07 · 21460 阅读 · 3 评论 -
C#使用JavaScriptSerializer类实现序列化与反序列化得到JSON
JavaScriptSerializer类由异步通信层内部使用,用于序列化和反序列化在浏览器和Web服务器之间传递的数据。1、添加引用项目添加:System.Web.Extensions.dll的引用;代码添加:using System.Web.Script.Serialization的引用;2、属性和方法介绍2.1 属性MaxJsonLength: 获取或设置JavaScri...原创 2018-10-04 11:53:18 · 22280 阅读 · 0 评论 -
C#中DataTable与List<T>的互转
1、创建DataTable扩展方法类(DataTableExtend.cs)using System;using System.Collections.Generic;using System.Data;using System.Reflection;namespace MyTest.OA.Common{ /// <summary> /// DataT...原创 2018-10-04 10:45:34 · 15503 阅读 · 1 评论 -
C#中DataTable的创建与遍历
C#中DataTable的创建与遍历1、创建DataTable对象/// <summary>/// 创建DataTable对象/// </summary>public static DataTable CreateDataTable(){ //创建DataTable DataTable dt = new DataTable("NewDt")...原创 2018-10-03 18:00:51 · 19334 阅读 · 0 评论 -
C#中类的字段或属性不被序列化成JSON或XML
将一个类序列化成JSON或XML时,如果某个字段或属性不想被序列化,则可以使用以下Attribute:1、[Newtonsoft.Json.JsonIgnore]特性:使用Newtonsoft.Json序列化时字段不会被序列化。2、[System.Web.Script.Serialization.ScriptIgnore]特性:使用JavaScriptSerializer序列化时字段不会被...原创 2018-09-24 11:27:11 · 15123 阅读 · 0 评论 -
C#中POST请求时出现System.Net.WebException: 远程服务器返回错误: (417)Expectation Failed的解决办法
在使用POST请求的时候,当要POST的数据大于1024字节的时候,服务不会直接就发起POST请求,而是会分为俩步:(1)发送一个请求, 包含一个Expect:100-continue, 询问Server使用愿意接受数据。(2)接收到Server返回的100-continue应答以后,才把数据POST给Server。C#中的错误提示:System.Net.WebException: 远程服...原创 2018-09-24 09:36:03 · 15104 阅读 · 0 评论 -
ASP.NET MVC中@Html.Raw()的使用
ASP.NET MVC中@Html.Raw()的作用是将带有Html标签的字符串,转换成Html标签输出。【实例】使用@Html.Raw()在页面显示一个红色的文字。<body> @Html.Raw("<div style='color:red'>红字</div>")</body>【实例】使用@Html.Raw()在页面上输出...原创 2018-08-12 11:45:00 · 8280 阅读 · 0 评论 -
C#队列和栈的使用
一、队列队列是其元素以先进先出(Firstin,Firstout,FIFO)的方式来处理的集合。先放入队列中的元素会先读取。队列使用System.Collections.Generic命名空间中的泛型类Queue<T>实现。队列的成员Count:Count属性返回队列中元素个数。Enqueue:Enqueue()方法在队列一端添加一个元素。Dequeue:Dequeue()方法在队列的...原创 2018-07-07 12:11:24 · 14863 阅读 · 0 评论 -
ASP.NET MVC实现简单的文件上传与下载
使用ASP.NET MVC实现简单的文件上传与下载。1、上传文件HTML<form action='@Url.Action("Upload", "File")' method="post" enctype="multipart/form-data"> <input type="file" name="file" />原创 2018-06-17 15:20:40 · 11552 阅读 · 2 评论 -
C#扩展方法
扩展方法是静态方法,它是类的一部分,但实际上没有放在类的源代码中。注意事项:1、创建扩展方法的类必须是静态类,方法是静态方法。2、扩展方法的第一个参数是被扩展的对象,使用this关键字。3、扩展方法也可以用于扩展接口。这样,实现该接口的所有类就有了公共功能。【实例】使用一个方法扩展String类型,该方法计算字符串中的单词数。/// <summary>/// String类型扩展类...原创 2018-06-17 12:05:31 · 245 阅读 · 0 评论 -
C#获取枚举描述
首先创建如下枚举信息,并使用DescriptionAttribute类增加描述特性。/// <summary>/// 状态编码枚举/// </summary>public enum StatusCode{ /// <summary> /// 操作成功 /// </summary> [Description("操...原创 2018-06-16 11:32:25 · 8856 阅读 · 0 评论 -
.NET上传大文件时提示Maximum request length exceeded错误的解决方法
使用IIS托管应用程序时,当我们需要上传大文件(4MB以上)时,应用程序会提示Maximum request length exceeded的错误信息。该错误信息的翻译:超过最大请求长度。解决方法:使用IIS来托管应用程序,默认的上传文件大小为4MB。我们需要增加请求大小,在项目的Web.config配置文件中添加以下配置项信息:<configuration> &...原创 2018-06-16 10:30:13 · 10384 阅读 · 0 评论 -
C#一些时间处理方法
1、字符串日期转DateTime型2、获取本年的第几周3、获取指定周的日期范围(开始时间:周一;结束时间:周日)4、获取今天是星期几1、字符串日期转DateTime型/// <summary> /// 字符串日期转DateTime /// </summary> public static DateTime TransStrToDateTime(string s...原创 2018-06-02 22:17:27 · 741 阅读 · 0 评论 -
C#使用throw和throw ex的区别
之前,在使用异常捕获语句try...catch...throw语句时,一直没太留意几种用法的区别,前几天调试程序时无意中了解到几种使用方法是有区别的,网上一查,还真是,主要是区别在堆栈信息的起始点不同。总结如下:我们都知道,C#中使用throw和throw ex抛出异常,但二者是有区别的。在C#中推荐使用throw;来抛出异常;throw ex;会将到现在为止的所有信息清空,认为你ca...转载 2018-04-15 11:29:33 · 8497 阅读 · 3 评论 -
C#使用Newtonsoft.Json(Json.NET)解析JSON数据
C#解析JSON数据,实例中使用了Newtonsoft.Json(Json.NET)类库。创建JSON数据文件(JsonData.txt){ "StatusCode":"200", "StatusMsg":"Success", "Data":[ { "UserID":"1", "UserName":"张三&q原创 2018-04-14 19:03:51 · 8238 阅读 · 1 评论 -
C#实现Zip文件解压
首先需要安装7-Zip。7-Zip是一款高压缩比的压缩软件,不仅支持独有的7z文件格式,而且还支持各种其它压缩文件格式,其中包括 ZIP、RAR、CAB、GZIP、BZIP2和TAR等格式。此软件压缩的压缩比要比普通ZIP文件高30-50%。方式一:/// <summary>/// 解压Zip文件/// </summary>public static voi...原创 2017-11-11 10:21:21 · 4616 阅读 · 0 评论 -
C#使用GET、POST请求获取结果 (二)
C#使用GET、POST请求获取结果。创建HttpWebHelper.cs类public class HttpWebHelper{ #region Post方式请求 public static T Post<T>(string url, string data, Dictionary<string, string> Headers = null...原创 2017-11-07 11:43:00 · 1587 阅读 · 0 评论 -
ASP.NET MVC中Form表单标签
动态生成表单标签。1、方式一(推荐)(1)在视图中创建表单@using (Html.BeginForm("Add", "Home", FormMethod.Post, new { id = "form1" })){ }(2)生成的HTML代码<form action="/Home/Add" id="form1" method="post"&am原创 2017-10-31 22:17:58 · 1132 阅读 · 0 评论 -
ASP.NET MVC应用笔记
1、控制器返回页面的JSON格式处理。2、@Html.ActionLink()的使用。3、@Html.Raw()的使用。4、@Url.Content()的使用。5、页面不引用_Layout.cshtml。 1、控制器返回页面的JSON格式处理。var modelVar = @Html.Raw(Json.Encode(Model))2、@Html.ActionLin...原创 2017-10-31 21:57:06 · 337 阅读 · 0 评论 -
ASP.NET MVC中TempData、ViewData和ViewBag的区别
1、TempData、ViewData和ViewBag的区别ViewData是字典型的(Dictionary),ViewBag不再是字典的键值对结构,而是dynamic(动态)型,会在程序运行的时候动态解析。ViewData为object型,而ViewBag为dynamic型。dynamic型与object型的区别是在使用时它会自动根据数据类型转换,而object型则需要我们自己去强行转换。...原创 2017-10-30 22:39:11 · 2271 阅读 · 0 评论 -
C#获取程序运行时间
1、使用Stopwatch类命名空间:System.DiagnosticsStopwatch 实例可以测量一个时间间隔的运行时间,也可以测量多个时间间隔的总运行时间。在典型的 Stopwatch 方案中,先调用 Start 方法,然后调用 Stop 方法,最后使用 Elapsed 属性检查运行时间。Stopwatch 实例或者在运行,或者已停止;使用 IsRunning 可以确定 St...原创 2017-06-23 15:18:02 · 9578 阅读 · 0 评论 -
C#使用WebClient下载文件到本地目录
C#使用WebClient下载文件到本地目录。1、配置本地目录路径<appSettings> <!--文件下载目录--> <add key="Download_Dic" value="E:\MyDownloadFile\"/></appSettings>2、创建FileHandler.cs类,编写下载代码/// <原创 2017-05-13 18:03:39 · 21862 阅读 · 4 评论 -
C#中Newtonsoft.Json(Json.NET)的使用
C#中Newtonsoft.Json(Json.NET)的使用。添加引用:using Newtonsoft.Json; 调用代码://获取图书列表List<BookInfo> bookList = GetBookList();//将图书列表转换成Json string bookListJson = JsonConvert.Serialize...原创 2017-05-13 16:49:44 · 16029 阅读 · 0 评论 -
C# .NET常问的面试题
一 C# .NET技术1、ASP.NET MVC如何控制权限?2、C#.NET中的CTS、CLS和CLR?3、什么是多线程,如何创建和如何使用?请写一个多线程单例模式?4、什么是单例模式?5、请你说说你所了解的设计模式?6、请画出抽象工厂的流程图?7、什么是Lambda表达式?8、什么是Linq表达式?9、什么是异步,什么是委托?10、什么是MVC,为什么要...原创 2016-11-06 13:05:25 · 4376 阅读 · 2 评论