發表文章

目前顯示的是 9月, 2021的文章

[電繪]:Rattus rattus-黑鼠

圖片
  In some eras, rats represented the plague and were despised creatures, but in my eyes, humans and rats are no different. -- 在某些時代裡,老鼠代表著瘟疫,是人們唾棄的生物,然而在我眼裡,人與老鼠並無不同。

[Razor]View傳遞viewdata給PartialView

圖片
需求: 想要在一個view傳值給另一個view。 假設我今天有兩個view,一個是Index(圖一),一個是BView(圖二),我們可以看到BView有一個ViewBag.Value,但目前這個ViewBag並沒有值,我們要如何從Index將自鑽value的"apple"傳給BView呢? 圖一 圖二 實作: (一)new 一個ViewDataDictionary物件來傳遞value: @{     var value = "apple"; } <h1>我是Index</h1> <hr /> @Html.Partial("BView", new ViewDataDictionary { { "Value", value } }) 結果: 成功將apple傳遞給了BView。

[Enum]依照Int 值 取得Enum的描述

圖片
 需求: 目前我有一個類型為int的變數value,值為1(如圖一);有一個列舉TestEnum(如圖二),那麼該如何利用這麼變數value取的Enum的Description = "測試B"呢? 圖一 圖二 實作: (一)寫一個"依照Int 值 取得Enum的描述"的擴充方法: 引用: using System.ComponentModel.DataAnnotations;   /// <summary>         /// 依照Int 值 取得Enum的描述         /// </summary>         /// <typeparam name="T">泛型</typeparam>         /// <param name="obj">列舉物件</param>         /// <returns></returns>         public static string GetEnumDescriptionByInt<T> (this object obj)         {             int value;             if (obj == null)             {                 return string.Empty;             }             if (!int.TryParse(obj.ToString(), out value))             {                 value = 0;             }             var e = Enum.Parse(typeof(T), Convert.ToString(value));             var enumType = ((Enum)e);             var objName = enumType.ToString();             var t = enumType.GetType();             var f

[JQuery]簡單的table 排序功能

圖片
需求: 使用頁面資料內容,點擊<th>時會遞增,遞減排序所屬<td>內容。 實作: 引用: <!--引用 dataTables css --> <link rel="stylesheet" href="https://cdn.datatables.net/1.10.16/css/jquery.dataTables.min.css" /> <!--引用jQuery--> <script type="text/javascript" src="https://code.jquery.com/jquery-3.3.1.js"></script> <!--引用dataTables--> <script type="text/javascript" src="https://cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js"> html: table class給JQ_DataTable,不想排序的欄位,class給no-sort。 <table class=" JQ_DataTable ">     <thead>         <tr>             <th class=" no-sort ">項次</th>             <th>內容</th>         </tr>     </thead>     <tbody>         @for (var i = 1; i <= 10; i++)         {             <tr>                 <td>@i</td>                 <td>@i</td>             </tr>         }     <

[C#]將Model轉UrlAction字串方法

圖片
 需求: 使用@Url.Action()的時候,有時候要接的參數太多,因此我就想有沒有辦法可以直接將以有的modal自動轉為RouteValueDictionary帶回controller。 情境: 我有一個model TestModel (圖一),我想把Action Index 的model透過A標籤用@Url.Action()傳遞到Action  Test (圖二) 圖一 圖二 實做: (一)建立一個UrlHelper 來將物件轉換成RouteValueDictionary:  /// <summary>         /// 物件轉換成RouteValueDictionary         /// </summary>         /// <typeparam name="T">泛型</typeparam>         /// <param name="obj">物件</param>         /// <returns></returns>         public static RouteValueDictionary ObjectToRouteValueDictionary <T>(T obj)         {             var rvDic = new RouteValueDictionary();             foreach (var property in obj.GetType().GetProperties())             {                 //type符合集合類型(Array暫時沒有)                 if ((property.PropertyType.IsGenericType && property.PropertyType.GetGenericTypeDefinition() == typeof(IEnumerable<>)) ||                        typeof(ICollection).IsAssignableFrom(propert

[C#]依照屬性名稱取得模型欄位值

圖片
 需求: 取得物件模型裡,某一個屬性欄位的值。 ex: 我目前有一個 模型TestModal (圖一),並new 出了一 個TestModal,分別給 A、B 屬性自己的值(圖二),假設今天想要 只拿到B屬性欄位的值 該如何辦到呢? (圖一) (圖二) 實作: (一)寫一個依照屬性名稱取得欄位值的方法:   /// <summary>         /// 依照屬性名稱取得模型欄位值         /// </summary>         /// <typeparam name="T1"></typeparam>         /// <param name="name">欄位名稱</param>         /// <param name="t1"></param>         /// <returns></returns>         public static object GetValueByPropertyName <T1>(this string name, T1 t1)         {             return t1.GetType().GetProperty(name).GetValue(t1);         } (二)使用GetValueByPropertyName()取得Test裡屬性B的值 static void Main(string[] args)         {             var test = new TestModal ()             {                 A = "我是A",                 B = "我是B"             };             var propertyName = "B";             Console.WriteLine ( propertyName . GetValueByPropertyName < TestModal &