顯示具有 ASP.NET MVC 標籤的文章。 顯示所有文章
顯示具有 ASP.NET MVC 標籤的文章。 顯示所有文章

2018/12/18

[筆記] ASP.NET WebApi2 繼承之後的 AttributeRouting 無法作用

在要提供 /api/MyApi 以及 /api/v2/MyApi 只有特定某個 action 需要 override 

或是產品提供基礎功能的 abstract class 提供給專案客製空間時可以使用到

太久之前處理過,這幾天開新案又碰到一次, MEMO 一下作法

2016/10/25

[筆記] ASP.NET MVC 改用 Json.Net 回應 JSON 時處理 XSS 問題

其實 ASP.NET MVC 內建的 JavaScriptSerializer 就有做到將 html 給 encode 來預防 xss 了



但為了效能ISO 8601 日期格式考量

在我們開發的系統中就把 JavaScriptSerializer 給換成 Json.Net 了 (如下 & 作法的參考網址)

2016/06/18

[筆記] 使用自訂的 Scaffold Templates 來加快 ASP.NET MVC 的開發

最近要開發的新系統終於準備好要開始投入大量人力開發了

由於多人開發上要要求每個人在某某功能的版面時要按照怎樣的結構來刻 HTML 有難度 

加上之前跟某位朋友聊天時提到他們家有使用 Scaffold Templates

故想說.... 與其一直宣導該怎樣寫,不如讓大家預設拿到的就是結構已經長好的頁面

2016/03/18

[筆記] ASP.Net MVC 使用 ActionFilter 驗證 ModelState

利用 MVC 的 Model binding 時都要檢查 ModelState 是否有正確

 if (!ModelState.IsValid) return new HttpStatusCodeResult(HttpStatusCode.BadRequest) 


但每個 Action 都要記得這樣檢查實在是太累了 (而且有些人會忘記....)

所以直接做成 Filter 讓每個 request 都會執行這樣~

     public class ModelStateValidationFilter : System.Web.Mvc.ActionFilterAttribute
    {
        public override void OnActionExecuting(System.Web.Mvc.ActionExecutingContext filterContext)
        {
            if (!filterContext.Controller.ViewData.ModelState.IsValid)
            {
                var errors = from errs in (
                        from modelstate in filterContext.Controller.ViewData.ModelState.Values
                        select modelstate.Errors
                    )
                    where errs.Count > 0
                    select errs[0].ErrorMessage;

                // 用 Elmah 記錄誰在哪邊沒通過驗證
                Elmah.ErrorSignal.FromCurrentContext().Raise(new Exception(String.Join(",",errors.ToArray())));
                // 回應錯誤
                throw new HttpException(400);
            }

        }
    }


寫好之後要在 FilterConfig 中加入

    filters.Add(new ModelStateValidationFilter()); 

目前在寫的系統是用 Ajax From, 所以直接拋錯誤回去就可以 (讓 js 接手 on fail)

如果是重讀整個頁面的這樣就會直接讓 user 看到錯誤了~

2015/01/30

[筆記] ASP.NET MVC 多國語言,使用獨立的 Resource Library

  1. 於方案中增加新的專案
  2. 於專案中增加新的lang.resx 檔案,並確認其存取權限為 Public
  3. 執行Custom tools, 確認 resx.Designe.cs 裡面有長出對應的 Code
  4. 新增lang.en-US.resx 並於 resx 編輯畫面中填入一樣的 key 跟對應的英文 value
  5. 原專案將 resource 專案加入參考
  6. 加入參考後, 可於 razor 頁面使用 @resource.lang.resourceKey 的方式取得對應的資源 value
  7. 於 code 中實作語系切換 (看是要讀db 還是讀browser,如果讀browser,記得要於web.config 中設定 browser 參數)
--
改天再補 code 的細節跟畫面 0rz 累累

2013/11/19

[筆記] ASP.NET MVC 將 Model 獨立成一個專案 (使用EntityFramework)

會想這樣嘗試只是想試試看到底能不能切開,真的要切開應該是搭配 ASP.NET MVC API專案才是

切出來變成類別庫專案只是讓 model 變成一顆 dll,讓東西發佈出去之後別人看不到 DAL 層的運作方式.... 吧 (我知道有反組譯工具~)

環境是 Windows 8.1, Visual Studio 2012 , .NetFramework 4.5


2013/10/21

[練習] ASP.NET MVC 4 作業


20131021 Model的用法....

原本以為Model都要乖乖的跟EFs一樣一次只能繫結一個結構物件(列舉?),然後View裡面乖乖用IEnumerable吃下來
 後來經大悠大大開示才知道可以一次傳回一整個大物件,然後裡面包含 a, b, list a, list b, list c......
腦筋太死 0rz


然後上週五同事問到怎麼再回到之前的頁面之後把值keep住,
悠大大表示直接把所有的值給post到目標comtroller 如果查詢 fail 掉就呼叫原本的 View 把東西還給它即可 ~





2013/10/11

[練習] ASP.NET MVC 4

20131011 - XmlParser

上班無聊 (
來做個Xml資料來源的model試試看
可惜似乎沒辦法像 EntityFramework 一樣直接在Razor page 一開頭做資料繫結 
 但用ViewData丟也是可以的啦,只是跑foreach時要轉型非常幽默 
@foreach (var a in (IEnumerable < Mvc4.Model.bParser.item > )ViewData["post"]) 


2012/05/29

ASP.Net MVC Paging

MEMO

http://blogs.taiga.nl/martijn/tag/paging/


ASP.Net MVC3 的外國豬走路影片

看點部落的暗黑執行緒大大的 ASP.NET MVC 3 豬走路範例系列

http://blog.darkthread.net/post-2011-04-11-asp-net-mvc3-intro-1.aspx

後面的回文有人提到說


    報告,我看過外國豬走路!

    走得很不錯:http://www.asp.net/mvc/pluralsight


記錄一下  學習國外的豬都怎麼走

--

http://blog.miniasp.com/category/ASPNET-MVC.aspx

保哥的 MVC 文章整理 (目前手上的工具書也是保哥出的)

--
※ 發信站: 批踢踢兔(ptt2.cc)
◆ From: 114.36.60.240