免费男女视频_国产系列 视频二区_羞羞视频免费入口网站_久国久产久精永久网页_国产免费观看av_一区二区三区日韩在线观看

.NET MVC学习笔记二

1、.NET MVC頁面加入緩存

1.1 方法一:輸出緩存

在控制器代碼前加上注解:[OutputCache(Duration=15)]。這里的15單位是秒。

例如:

[OutputCache(Duration=15)]

public ActionResult Index()

{

 return View();

}

1.2 方法二:使用緩存配置文件

(1)在web.config文件<system.web>中加入以下配置:

<caching>

<outputCacheSettings>

<outputCacheProfiles>

<addname="testcache"duration="10"enabled="true"location="ServerAndClient"varyByParam="none"/>

</outputCacheProfiles>

</outputCacheSettings>

</caching>

(2)在要使用的action中加入要引用的緩存配置

[OutputCache(CacheProfile="testcache")]

public ActionResult Index()

{

return View();

}

 

2、讀取excel內容

2.1 引入DLL

using System.Data.OleDb;

using System.Data;

2.2 方法一:將excel看作數據源來進行讀取

string oleconn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\Test\\test.xls;Extended Properties='Excel 8.0;HDR=NO'";

// HDR=NO 無字段。

// HDR=YES 有字段,一般默認excel表中第1行的列標題為字段名。

OleDbConnection conn = newOleDbConnection(oleconn);

conn.Open();

string str_sql = "select * from [Sheet1$]";

OleDbDataAdapter oda = newOleDbDataAdapter(str_sql, conn);

DataSet ds = newDataSet();

oda.Fill(ds);

conn.Close();

2.2 方法二:使用datareader

string oleconn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\Test\\test.xls;Extended Properties='Excel 8.0;HDR=NO'";

string str_sql = "select * from [Sheet1$]";

OleDbConnection conn = newOleDbConnection(oleconn);

OleDbCommand od= newOleDbCommand();

od.Connection = conn;

od.CommandText = str_sql;

conn.Open();

OleDbDataReader reader= od.ExecuteReader();

while(reader.Read())

{

要讀取的字段;

 }

reader.Close();

conn.Close();

 

3、將數據導出為txt文件

FileStream fs = newFileStream("D:\\Test\\文件名.txt", FileMode.Create);

byte[] data = System.Text.Encoding.Default.GetBytes(要寫入的數據);

//開始寫入

fs.Write(data, 0, data.Length);

//清空緩沖區、關閉流

fs.Flush();

fs.Close();

 

4、分隔字符串

例如:字符串string test=“aabccbdde”;

想以b作為分隔

string[] sArray = Regex.Split(test, "b", RegexOptions.IgnoreCase);

 

5、截取字符串

例如: string test=”(123456)”;

想把左右兩個括號去掉,只保留數字。

//截取左括號

stringtestSubL = test.Substring(1);

//截取右括號

string testSubR = testSubL.Substring(0,testSubL.Length-1);

 

6、log4net 記錄MVC監控日志

6.1 下載log4net

地址:http://logging.apache.org/log4net/download_log4net.cgi

6.2 引用log4net.dll

將下載下來的程序,自行按照所需要的.net版本編譯,編譯完成,在項目中引用log4net.dll文件。

6.3 配置log4net

(1)在AssemblyInfo.cs最下面加入一行。

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]

(2)在根目錄下新建一個log4net.config文件。

<?xmlversion="1.0"encoding="utf-8" ?>

<configuration>

<configSections>

<sectionname="log4net"type="System.Configuration.IgnoreHandlerSection"/>

</configSections>

<log4net>

<appendername="console"type="log4net.Appender.ConsoleAppender"></appender>

<root>

<levelvalue="WARN" />

<appender-refref="LogFileAppender" />

</root>

<loggername="Test">

<levelvalue="DEBUG"/>

</logger>

<appendername="LogFileAppender"type="log4net.Appender.FileAppender">

<paramname="File"value="D:/Test/log.txt" />

<paramname="AppendToFile"value="true" />

<layouttype="log4net.Layout.PatternLayout">

<paramname="Header"value="[Header]/r/n"/>

<paramname="Footer"value="[Footer]/r/n"/>

<paramname="ConversionPattern"value="%d [%t] %-5p %c [%x]  - %m%n"/>

</layout>

</appender>

</log4net>

</configuration>

6.4 使用日志

og4net.ILog log = log4net.LogManager.GetLogger("Test"); 

log.Error("haha"); 

log.Info("log日志信息");

log.Debug("debug信息");

log.Error("error信息");

log.Warn("warn信息");

Exception ex = newException("測試的異常信息");

log.Fatal("fatal信息", ex);

 

7、Log4Net 日志文件按日期來命名

結合6,將log4net.config更改為如下內容

<?xmlversion="1.0"encoding="utf-8" ?>

<configuration>

<configSections>

<sectionname="log4net"type="System.Configuration.IgnoreHandlerSection"/>

</configSections>

<log4net>

<appendername="console"type="log4net.Appender.ConsoleAppender"></appender>

<root>

<levelvalue="WARN" />

<appender-refref="RollingLogFile" />

</root>

<loggername="Test">

<levelvalue="DEBUG"/>

</logger>

<appendername="RollingLogFile"type="log4net.Appender.RollingFileAppender">

<paramname="File"value="D:/Test/"/>

<paramname="AppendToFile"value="true"/>

<paramname="RollingStyle"value="Composite"/>

<paramname="DatePattern"value="yyyy-MM-dd&quot;.txt&quot;"/>

<paramname="PreserveLogFileNameExtension"value="true"/>

<paramname="StaticLogFileName"value="false"/>

<!--指定每個文件的最大值,超出容量就拆分-->

<maxSizeRollBackupsvalue="10" />

<paramname="MaximumFileSize"value="10KB"/>

<layouttype="log4net.Layout.PatternLayout">

<paramname="ConversionPattern"value="%date %-5level %logger  message:%m%n"/>

</layout>

</appender>

</log4net>

</configuration>

 

8、Compare不明確的引用,問題解決

例如,如下model

[DataType(DataType.Password)]

[Display(Name = "確認密碼")]

[Compare("NewPassword", ErrorMessage = "兩次密碼輸入不一致。")]

publicstring ConfirmPassword { get; set; }

會報錯誤:

錯誤 9   “CompareAttribute”是“System.ComponentModel.DataAnnotations.CompareAttribute”和“System.Web.Mvc.CompareAttribute”之間的不明確的引用

解決方法

[System.ComponentModel.DataAnnotations.Compare("Password", ErrorMessage = "兩次密碼輸入不一致。")]

public string ConfirmPassword { get; set; }

 

9、“發現同一依賴程序集的不同版本間存在無法解決的沖突。當日志詳細信息設置為“詳細”時,這些引用沖突將會在生成日志中列出。”解決方法

9.1 VS2013,選擇“工具”選項

9.2在左側樹中,選擇 項目和解決方案 節點,然后選擇 生成和運行 

9.3在出現的工具/選項頁中,設置 MSBuild項目生成輸出的詳細程度 水平 詳細

 

10、分頁算法

以操作mySql為例:

select * from 數據表limit(頁碼-1)*每頁記錄數,每頁記錄數

例:select * from 數據表limit 0,2;

 

11、格式良好的XML

11.1 每個開始標簽必須有一個結束標簽。

11.2 空元素必須以“/>”結束。

11.3 元素不能夠交錯但可以嵌套。

11.4 元素和特性必須使用一致的大小寫。

11.5 一個元素不能夠有兩個特性同名。

11.6 一個元素可以包含兩個同名的嵌套元素。

11.7 一個文檔只可以有一個根元素。

11.8 所有特性在值的前后都要有引號。

11.9 注釋不能放到標簽中。

 

12、寫入XML文件方法一

12.1 代碼

using System.Xml;

String xmlFilePath = Server.MapPath("XMLTest.txt");

XmlTextWriter writer = new XmlTextWriter(xmlFilePath,Encoding.UTF8);

writer.Formatting = Formatting.Indented;

writer.Indentation = 3;

writer.WriteStartDocument();

 //加入創建時間

writer.WriteComment("Created@ by jjyc.org "+DateTime.Now.ToString());

writer.WriteStartElement("父元素");

writer.WriteStartElement("子元素");

writer.WriteAttributeString("特性1","特性1的值");

writer.WriteAttributeString("特性2","特性2的值");

//關閉特性1

writer.WriteEndElement();

//關閉子元素

writer.WriteEndElement();

writer.Close();

12.2 結果如下

<?xml version="1.0" encoding="utf-8"?>

<!--Created@ by jjyc.org 2016/1/26 9:46:41-->

<父元素>

   <子元素 特性1="特性1的值" 特性2="特性2的值">

      <標題>特性1下的標題</標題>

      <詳情>特性1下的詳情</詳情>

   </子元素>

</父元素>

 

13、讀取XML文件方法一

13.1 代碼

結合上文生成的XMLTest.txt

String xmlFile = Server.MapPath("XMLTest.txt");

XmlTextReader reader = new XmlTextReader(xmlFile);

StringBuilder str = new StringBuilder();

while (reader.Read())

{

     switch (reader.NodeType)

     {

          case XmlNodeType.XmlDeclaration:

          str.Append("XML Declaration: <b>");

          str.Append(reader.Name);

          str.Append(" ");

          str.Append("</b><br/>");

          break;

          case XmlNodeType.Element:

          str.Append("Element :<b>");

          str.Append(reader.Name);

          str.Append("</b><br/>");

          break;

          case XmlNodeType.Text:

          str.Append("- Value:<b>");

          str.Append(reader.Value);

          str.Append("</b><br/>");

          break;

    }

    if (reader.AttributeCount > 0)

    {

          while (reader.MoveToNextAttribute())

          {

                str.Append("-Attribute:<b>");

                str.Append(reader.Name);

                str.Append("</b> Value:<b>");

                str.Append(reader.Value);

                str.Append("</b><br/>");

            }

      }             

}

reader.Close();

 

13.2結果如下(已經轉為HTML格式顯示)

XML Declaration: xml 
-Attribute:version Value:1.0
-Attribute:encoding Value:utf-8
Element :父元素
Element :子元素
-Attribute:特性1 Value:特性1的值
-Attribute:特性2 Value:特性2的值
Element :標題
- Value:特性1下的標題
Element :詳情
- Value:特性1下的詳情

 

14、 寫入XML文件方法二

14.1 代碼

XDocument doc = new XDocument(

                new XDeclaration("1.0", "uft-8", "yes"),

                new XComment("Created:" + DateTime.Now.ToString()),

                new XElement("根節點",

                    new XElement("商品列表",

                    new XAttribute("商品ID", "A0001"),

                    new XAttribute("商品種類", "食品"),

                    new XElement("商品名稱", "兒童車"),

                    new XElement("商品價格", "200.3"),

                    new XElement("商品詳情",

                        new XElement("信息來源", "佳佳原創"),

                        new XElement("網址", "http://www.chreactor.com")

                        )

                    )

                    )

                );

            doc.Save(Server.MapPath("NewXMLTest.txt"));

14.2 生成的XML如下

<?xml version="1.0" encoding="utf-8" standalone="yes"?>

<!--Created:2016/1/27 11:55:08-->

<商品列表 商品ID="A0001" 商品種類="食品">

  <商品名稱>兒童車</商品名稱>

  <商品價格>200.3</商品價格>

  <商品詳情>

    <信息來源>佳佳原創</信息來源>

    <網址>http://www.chreactor.com</網址>

  </商品詳情>

</商品列表>

 

15 讀取XML文件方法二

15.1 代碼

string xmLFile = Server.MapPath("NewXMLTest.txt");

            XDocument doc = XDocument.Load(xmLFile);

            StringBuilder str = new StringBuilder();         

            foreach (XElement element in doc.Element("根節點").Elements())

            {

                str.Append("商品ID:"+(string)element.Attribute("商品ID").Value + "<br />");

                str.Append("商品種類:"+(string)element.Attribute("商品種類").Value + "<br />");

                str.Append("商品名稱:" + (string)element.Element("商品名稱") + "<br />");

                str.Append("商品價格:" + String.Format("{0:C}",(decimal)element.Element("商品價格")) + "<br />");

                foreach (XElement ele in element.Elements("商品詳情"))

                {

                    str.Append("信息來源:" + (string)ele.Element("信息來源") + "<br />");

                    str.Append("網址:" + (string)ele.Element("網址") + "<br />");

                }             

            }

15.2結果如下(已經轉為HTML格式顯示)

商品ID:A0001
商品種類:食品
商品名稱:兒童車
商品價格:¥200.30
信息來源:佳佳原創
網址:http://www.chreactor.com

主站蜘蛛池模板: 久久久一区二区三区精品 | 一级黄色影院 | 久久久鲁 | 欧美一级在线免费 | 久久金品 | 久久艹国产精品 | 免费a级黄色毛片 | 欧美精品一区二区三区在线 | 中文区中文字幕免费看 | 黄色久 | 一级毛片在线免费观看视频 | a黄网站 | 中文字幕在线视频日本 | 一级外国毛片 | 热久久成人 | 亚洲影视中文字幕 | 欧产日产国产精品乱噜噜 | 国产在线看一区 | xxxxxx免费 | 亚洲生活片 | 免费日本一区二区 | 久久久www成人免费精品 | 2021国产精品视频 | 亚洲午夜影院在线观看 | 成人在线视频免费播放 | 九九视频久久 | 久久国产精品免费视频 | 亚洲午夜1000理论片aa | 99精品视频在线观看免费播放 | 免费毛片在线 | 91短视频在线播放 | 午夜视频在线看 | 成人做爰高潮片免费视频美国 | 91av国产在线| 99在线在线视频免费视频观看 | 99亚洲精品 | 久久久aa | 国产午夜精品久久久久久免费视 | chengrenzaixian| 有色视频在线观看 | 国产午夜精品久久久 |