Tag Archives: ASP.Net MVC

ASP.Net MVC add Currency Sign on Razor – 如何在ASP.Net MVC 上那些和貨幣相關的 field 加上貨幣符號呢?

最近的Freelance Project 終於去到埋尾階段
現在主要是解決一些小小的UI / UX 問題
第一個問題就是如何在Razor 上那些和貨幣相關的 field 加上貨幣符號呢?

ASP.Net MVCData Annotation 令這個有時都幾麻煩的事情簡單很多

我們只需要在Model上的貨幣field 加上以下的Data annotation便可以了
不用自行在cshtml上加上貨幣符號 String.Format這些東西
ASP.Net MVC Currency Sign by Using Data Annotation

E.G.

      [DisplayFormat(DataFormatString = "{0:C}", ApplyFormatInEditMode = true)]
        [DisplayName("Amount")]
        public decimal Amount { get; set; }

        [DisplayFormat(DataFormatString = "{0:C}", ApplyFormatInEditMode = true)]
        public decimal AmountRemaining { get; set; }

Model 上加了這個Data Annotation之後在那個地方使用言個field的時候都會自動加上貨幣符號了.
ASP.Net MVC Currency Sign via Data Annotation

Hope you find it useful

ASP.Net MVC Show View on Different View File

給自己一個小小的ASP.Net MVC 筆記
就是如何在ASP.Net MVC 上的 Action Load不同的 View 檔案
通常在ASP.Net MVCDefault ActionView通常會存在
View/ControllerName的資料夾內的/Action同名的.cshtml檔案
但是有時候我們可能有數個不同的Action但是顯示的view 可能是一樣的

解決方法十分簡單
我們只需要在 return View的時候加入那個.cshtml的檔案名[不包含 file extension]

E.g.

return View("Index")

hope you find it useful

Remove Reponse Header on ASP.Net MVC – 移除 ASP.Net MVC 的響應頭

最近公司終於分配了一些比較有趣的任務給我
可以明正言順地在公司做Research
之後測試
這個任務就是增強公司的那個ASP.Net MVC 網站的保安
以免被人入侵

最了一些research之後 發現有很多東西可以做 以減少被入侵的風險
今天想介紹給大家的是把 如何把MVC 的 Server Response Header 移除

原因
當有某一些安全漏洞被發現時
E.G. 針前某一些web server或 programming language
如果你的 web site的 Reponse Header把你的Server Config都 Response出來的話
那麼入侵者便可以得容易知道你的網站可以是下一個目標

E.G.

Default的ASP.Net MVC Website Response Header會把 Web Server的 資料
E.G. IIS 是什麼 Version
用那一個.Net Framework和那一個 ASP.Net Version 都沒有保留地 response出來
Google Chrome Console website response header

解決方法:

Global.asax 上 加入以下的 程式碼

  protected void Application_PreSendRequestHeaders()
        {
            Response.Headers.Remove("Server");
            Response.Headers.Remove("X-AspNet-Version");
            Response.Headers.Remove("X-AspNetMvc-Version");
            Response.Headers.Remove("X-Powered-By");
         
        }
        

Hope you find it useful

HTTP Error 404.3 – Not Found The page you are requesting cannot be served because of the extension configuration. If the page is a script, add a handler. If the file should be downloaded, add a MIME map.

Freelance的那個 ASP.Net MVC 5 Project 上加了一些新的 CSS 檔案..
當中有一些 CSS 檔是reference 了到一些 Font 既檔案上 “.woff2
誰不知 Default的 ASP.Net MVC 沒有config可以 serve 這個file extension
所以嘗網頁嘗試 Load 這個 file 是便出現 HTTP 404.3 Not Found

HTTP Error 404.3 – Not Found The page you are requesting cannot be served because of the extension configuration. If the page is a script, add a handler. If the file should be downloaded, add a MIME map.”
HTTP Error 404.3 - Not Found The page you are requesting cannot be served because of the extension configuration. If the page is a script, add a handler. If the file should be downloaded, add a MIME map.

解決方法十分簡單
我們只需要在Web.config上 加上容許那些MIME 檔案 extension便可以了

  <system.webServer>
 <staticContent>
 <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
 </staticContent>
 </system.webServer>

Web.config add supported MIME type
Hope you find it useful

How to show 2 Decimal Place in C# – 如何在C# 上把數字顯示為兩個小數位

今天的ASP.Net MVC Application 需要做一些數字格式化
因為在Database 上他的 DataTypeMoney
當他們出現在DataTable 時顯示在WebGrid時便會變成 4個小數位
e.g. 10.0000

如何在C# 上把數字顯示為兩個小數位呢?

解決方法十分簡單:
我們,可以使用String.Format 來解決

decimal number = 0.1234567
string.Format("{0:0.00}", number)

Hope you find it useful

LINQ try to get a list of int from string – 如何使用Linq在String上取出所有數字出來

今天要為同事解決一個 在ASP.Net MVC [.Net]將String 轉成List of Int的問題

情況是這樣的:
公司的一個ASP.Net MVC 的Project 上..客戶會在 WebGrid上的checkbox上選擇需要的東西..
我的同事便寫了一個隱藏的field 每當客戶選擇或取消選項時..
他用了Javascript 來把數據append 到隱藏的field上
他便用”|” 來把數據分隔
但是我們還是要做一些Validation
避免數據有問題時..會令到這個程式碼/程序出現問題
E.G.
1|ab|| | 3 |4|
有空格或有字母時..當把數據轉到List Of Int時便會出現錯誤了

由於他工作放大假中..
所以我便要去解決他沒有解決的問題了
就是用.net去把這一個 String轉成 List of Int..

開頭我都有一些不知如何是好..
因為可以用一個比較簡單的方法..
但是可能要寫多很多的程式碼
就是先建立一個StringArray..
之後用Int.TryParse來把 成功認到是Int的 數據加進另一個List of Int上..
感覺不太好..

做了一些research 之後終於找到解決方法了:
解決方法:

我們可以嘗試使用LINQ 的方法去解決這個問題

  // Input
  string tempInput = "1|ab|| | 3 |4|";

  // This value is used for int.TryParse reference
  int tempVal=0;
  List intList = (from i in tempInput.Split('|').ToList()
                                          where int.TryParse(i, out tempVal)
                                          select  int.Parse(i)).ToList();
  int noOfInt = intList.Count();
  // Output number of integer recognised 
  Console.WriteLine("No of Int: " + noOfInt.ToString());
  
  for(int i = 0; i< intList.Count(); i++){
  	// Output the recognised integer one by one
  	Console.WriteLine(intList[i].ToString());
  }
  

Use Linq to extract List of Integer from string

Happy Coding

Download jquery-1.7.2-vsdoc.js – 那

今天開始ASP.Net MVC3的Project
是把一個Classic ASP的Website轉使ASP.Net MVC3 的網頁..
開始先做的動作..
當然是把最新的JQuery Library 加進Project上..
和在Page 的Reference上使用最新的JQuery
大家可以到JQuery的官方網站上Download最新的JQuery
http://docs.jquery.com/Downloading_jQuery

到了網站後發現網站上很像沒有 jquery-1.7.2-vsdoc.js
vsdoc.js這個檔案主要是用在Visual Studio上..
令到Visual Studio可以提供 JQuery 相關的 intellisense

最後在網上research了一會兒 終於找到解決方法了

解決方法:
我們可以到以下網址下載jquery-1.7.2-vsdoc.js
http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2-vsdoc.js

如果是其他版本的話..只要更改URL上的版本version no 便可以了

E.G. jquery-1.6.1.jsvsdoc
可以使用以下的URL.
http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.1-vsdoc.js

Hope you find it useful