2016年7月12日 星期二

【ASP.NET】NuGet 封裝管理員 Migrations

啟用 Code First 移轉

【指令】
Enable-Migrations
Add-Migration init
Update-Database
參數-1:-Force 強制更新
參數-2:-Verbose

系統自動產生資料表:__MigrationHistory


【使用 Code First 移轉而不使用初始設定式】
說明:You get the script within Visual Studio. Notice that this will create a new table called __MigrationsHistory which is used by Entity Framework to keep track of migrations.
說明連結:http://martinnormark.com/entity-framework-migrations-cheat-sheet/

public Configuration()
{
    AutomaticMigrationsEnabled = false;
}


【在移轉中植入資料】
Msdn 官網說法:
DbMigrationsConfiguration.Seed 方法
[此頁面專屬於 Entity Framework 第 6 版。最新版本可從 'Entity Framework' NuGet 套件取得。如需 Entity Framework 的詳細資訊,請參閱 msdn.com/data/ef。]
在升級為最新的移轉之後執行,以便允許更新初始資料。


【相關參考網址如下】
https://azure.microsoft.com/zh-tw/documentation/articles/mobile-services-dotnet-backend-how-to-use-code-first-migrations/
http://martinnormark.com/entity-framework-migrations-cheat-sheet/
https://dotblogs.com.tw/kevinya/2013/10/31/126299
Msdn官網:https://msdn.microsoft.com/zh-tw/data/jj591621.aspx

【ASP.MVC Identity 2.0】如何使用 ASP.MVC Identity 2.0

AspNetRoles【Table:角色】
Id
Name
RoleName             【備註】擴充欄位
Discriminator        【備註】擴充欄位-系統自動新增【值:IdentityRole】 中譯‧辨別者,屬於哪個類別使用

AspNetUsers 【Table:使用者】
LockoutEnabled 【備註】是否要驗證錯誤次數 <--- p="">LockoutEndDateUtc 【備註】鎖定日期時間內
AccessFailedCount 【備註】輸入錯誤次數

// 預設需要去「驗證」輸入錯誤計算
manager.UserLockoutEnabledByDefault = true;
//限定自動增加 下次驗證 時間 ,以分為計算
manager.DefaultAccountLockoutTimeSpan = TimeSpan.FromMinutes(5);
//驗證最多錯誤次數
manager.MaxFailedAccessAttemptsBeforeLockout = 5;


當 LockoutEnabled  = 1 時,且 DateTime.Now 小於  LockoutEndDateUtc ,
則 SignInStatus.LockedOut 狀態

因 LockoutEndDateUtc  是美國時間
若要轉換本地時間  設定如下
DateTimeOffset local_date  = DateTime.SpecifyKind(user.LockoutEndDateUtc.Value, DateTimeKind.Utc);

ASP.NET 以 DateTimeOffset 為時間正規共用核心,再透過 區域設定(DateTimeKind.Utc) 轉換正規時間,之後就能 出輸成 local_date.LocalDateTime
<--- p="">
參考網址:
http://qiita.com/standtsukai/items/056e422bed8a57467778

http://www.tqcto.com/article/web/29166.html

http://tech.trailmax.info/2014/06/asp-net-identity-user-lockout/



2016年7月10日 星期日

【ASP.MVC】Partial View 說明

Partial View 說明

說明:類似 UserControl ASP.NET 使用者控制項 (.ascx 檔案)
Msdn Url:https://msdn.microsoft.com/zh-tw/library/system.web.mvc.html(v=vs.118).aspx

【以下有幾種方式達到 「Partial View」效果】

1.【Using System.Web.Mvc.Html.(Partial)Extensions 類別】
說明:部分檢視轉譯為 HTML 編碼字串的功能 (因轉換 Html 效能會慢點)
Msdn Url:https://msdn.microsoft.com/zh-tw/library/system.web.mvc.html.partialextensions(v=vs.118).aspx
程式範例:
Html.Partial("ViewName")
Html.Partial("ViewName","Model")

2.【Using System.Web.Mvc.Html.(RenderPartial)Extensions 類別】
說明:叫用指定的子系動作方法,並呈現內嵌於父檢視內的結果。

Msdn Url:https://msdn.microsoft.com/zh-tw/library/system.web.mvc.html.renderpartialextensions(v=vs.118).aspx
程式範例
Html.RenderPartial("_LoginPartial");
Html.RenderPartial("ViewName","Model")

PS.綜合以上1.2 說明,使用情境 Master Layout 將[資料]帶入給 Parent(Partial、RenderPartial) 使用

【Using System.Web.Mvc.Html.ChildActionExtensions 類別】
說明:代表支援[呼叫]子系動作[方法]並支援[呈現]內嵌於[父檢視]中的結果。
Msdn Url:https://msdn.microsoft.com/zh-tw/library/system.web.mvc.html.childactionextensions(v=vs.118).aspx

底下再分層 兩大類功能,可透過 Control 底下 Action 回傳 資料模組

1.(Action)
說明:部分檢視轉譯為 HTML 編碼字串的功能  (因轉換 Html 效能會慢點)
Msdn 說明:叫用指定的子系動作方法並以 HTML 字串形式傳回結果。
連結:https://msdn.microsoft.com/zh-tw/library/ee721266(v=vs.118).aspx
程式範例:
Html.Action("_LoginPartial");
Html.Action("_LoginPartial","ActionName");

2.(RenderAction)
說明:
Msdn Url:https://msdn.microsoft.com/zh-tw/library/ee703541(v=vs.118).aspx
程式範例:
Html.RenderAction("_LoginPartial");
Html.RenderAction("actionName","controllerName");
@{ Html.RenderAction("MenuAction", "BackLayout"); }

PS.綜合以上1.2 說明,Action 顧名思義 就是會透過後端Control 呼叫 Action 程式回傳(資料) For View 使用


圖示如下:
Partial View 說明流程圖

【ASP.MVC】工具 Intellisense 一下出現 又馬上消失問題



CTRL + SHIFT + J  重新更新 View 上面的 Script Intellisense

解決一下出現 又馬上消失問題