2016年12月9日 星期五

【IIS Windows 10 】Windows 10 在 iis 上 重新安裝 Framework 指令 powershell

新電腦 windows 10 裝完 VS 2015 再安裝  IIS 上看不到 Framework

懶的移除重新安裝的方法就是下指令

開始 搜尋  「powershell」 ,請右鍵請選擇「以系統管理員執行」

再輸入指令如下:
dism /online /enable-feature /all /featurename:IIS-ASPNET45



【IIS】Windows 10 在 iis 上 重新安裝 Framework

如圖下:

尋找 powershell 右鍵 管理員執行

powershell 下指令
完成後的IIS 畫面



2016年10月20日 星期四

【ASP.MVC】私房菜 MVC 30 招

第一招 (2016/10/23):
Html.AntiForgeryToken 自動 在 X-Frame-Options 中加上:SAMEORIGIN"

說明:禁止其它網站使用 Iframe 崁入
針對:X-Frame-Options 說明請參考以下網址:
網址:https://developer.mozilla.org/zh-TW/docs/HTTP/X-Frame-Options


第二招 (2016/10/25):
jQuery Validation 驗證表單

說明:找出尚有錯誤訊息,禁止 form.Submit()
針對:$("form").data("validator").errorList.length
網址:http://www.codeproject.com/Tips/539167/Modify-jQuery-validation-settings-using-MVC-unobtr

第三招(SQL ELMAH_Error)

ELMAH Utc 轉 Local Time

SELECT CONVERT(datetime,
               SWITCHOFFSET(CONVERT(datetimeoffset,
                                    ELMAH_Error.TimeUtc),
                            DATENAME(TzOffset, SYSDATETIMEOFFSET())))
       AS ColumnInLocalTime
FROM ELMAH_Error

第四招( IIS SSL 443 PORT)

說明:明明設定了 443 port 確無法顯示正常的 一個鎖的狀態
針對:因為你的網站頁面上面, including 外站資料 ,比如IMAGE 圖檔或 JavaScript 檔案
案例如下:

錯誤內容 including  其它網站 圖片或 js 檔,引發無法驗證成ssl 檔案

正確網址



待續...

2016年9月6日 星期二

【ASP NET.MVC, C# 】 Class to Json returun String to html 解析 String to obj

【ASP NET.MVC, C# 】Class to Json returun String to html 解析 String to obj

Action
return Json(save_result, "text/html", JsonRequestBehavior.AllowGet);

Html
JSON.parse(data.result);


【Jquery】jQuery Upload File 元件

使用:jquery.fileupload-validate.js 卻錯訊息

錯誤訊息:Cannot call method 'push' of undefined
是因為少了:jquery.fileupload-process.js

把它加入就可以了,要放在 validate 之前引用

2016年8月27日 星期六

【ASP.MVC】JSON 使用 前後台對應

【Action】
方法1
            var d = Context.CodeTree
                .Select(o => new { o.Name, o.Value });
方法2
            var result = from o in Context.CodeTree
                   .Select
                   (
                      o => new { o.Name, o.Value }
                   )
                     select o;

方法3
 IEnumerable Studentitems = 
 db.Student.Where(c => c.StudentCategoryID == CategoryID)
 .AsEnumerable().Select(c => new SelectListItem()
{
Text=c.Name,
Value=c.StudentID.ToString()
});
SelectList StudentID = new SelectList(Studentitems, "Value", "Text");

方法1
return Content(JsonConvert.SerializeObject(result), "application/json");
方法2
ViewBag.result = JsonConvert.SerializeObject(result);
方法3
return Json(StudentID, JsonRequestBehavior.AllowGet);

【View】
var q = '@Html.Raw(ViewBag.result)'

【ASP.MVC】驗証

數字:"^[0-9]*$"。

n位的數字:"^\d{n}$"。

至少n位的數字:"^\d{n,}$"。

m~n位的數字:。"^\d{m,n}$"

零和非零開頭的數字:"^(0|[1-9][0-9]*)$"。

有兩位小數的正實數:"^[0-9]+(.[0-9]{2})?$"。

有1~3位小數的正實數:"^[0-9]+(.[0-9]{1,3})?$"。

非零的正整數:"^\+?[1-9][0-9]*$"。

非零的負整數:"^\-[1-9][]0-9"*$。

長度為3的字符:"^.{3}$"。

由26個英文字母組成的字符串:"^[A-Za-z]+$"。

由26個大寫英文字母組成的字符串:"^[AZ]+$"。

由26個小寫英文字母組成的字符串:"^[az]+$"。

由數字和26個英文字母組成的字符串:"^[A-Za-z0-9]+$"。

由數字、26個英文字母或者下劃線組成的字符串:"^\w+$"。

驗證用戶密碼:"^[a-zA-Z]\w{5,17}$"正確格式為:以字母開頭,長度在6~18之間,只能包含字符、數字和下劃線。

驗證是否含有^%&',;=?$\"等字符:"[^%&',;=?$\x22]+"。

只能輸入漢字:"^[\u4e00-\u9fa5]{0,}$"

驗證Email地址:"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"。

驗證InternetURL:"^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$"。

驗證電話號碼:"^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$"正確格式為:"XXX-XXXXXXX"、"XXXX- XXXXXXXX "、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX"。

驗證身份證號(15位或18位數字):"^\d{15}|\d{18}$"。

驗證一年的12個月:"^(0?[1-9]|1[0-2])$"正確格式為:"01"~"09"和"1"~"12"。

驗證一個月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正確格式為;"01"~"09"和"1"~"31"。


ModelState.AddModelError方法是給View返回一個錯誤消息,最終交給@Html.ValidationSummary顯示。

2016年8月21日 星期日

【ASP.NET MVC 5 完全攻略】 這本書我自己的評語

對於【ASP.NET MVC 5 完全攻略】 這本書我自己的評語是:

初學者去看,會看不太懂書中要傳遞的詳細說明,

我本身是從今年開始學ASP.MVC 起初是看不懂書中要傳達的意思,

漸漸有了MVC基礎之後,在回頭看這本書,裡面寫的很細,

用途及用法及說明也有很多範例,只是範例用法也要看好幾次,

才會看得懂它的意思,我覺得書中並沒有傳達的很清楚圖像式,

書是直接切入細節說明,會讓初學者跳的太快,讓人翻一下就丟在陪邊,


PS.以上個人感覺說明,書的內容因人而異

2016年8月19日 星期五

【Jquery】DataTable套件 套用 language url 問題

        $(document).ready(function () {
            var table = $('#example').DataTable({
                "language": {
                    "url": "tw.json"
                }
            });
        });



照官網怎麼套繁體中文「Chinese-traditional.json」都有問題,結果就把檔案下來,用本機端去試,然後再然的「副檔名」改成 json 就搞定了...


繁體 官網說明:https://datatables.net/plug-ins/i18n/Chinese-traditional


官網:https://datatables.net/

大陸:http://datatables.club/

2016年8月18日 星期四

【LINQ】SELECT 兩個 欄位 tw column (第三種:Lambda select )

        public IQueryable CompanyList()
        {
            IQueryable result = null;

                result = from o in Context.Company
                         .Select
                         (
                            o => new { o.CodeName ,o.CodeValue}
                         )
                        select o;

            return result;
        }

解析後:
{SELECT
    1 AS [C1],
    [Extent1].[CodeName] AS [CodeName],
    [Extent1].[CodeValue] AS [CodeValue]
    FROM (
SELECT
    [Company].[Id] AS [CodeTreeId],
    [Company].[CodeName] AS [CodeName],
    [Company].[CodeValue] AS [CodeValue],
    [Company].[Sort] AS [Sort],

    FROM [dbo].[Company] AS [Company]) AS [Extent1]}

【LINQ】Select 兩個 欄位 two column (第二種:更好解法 linq select new)

【LINQ】Select 兩個 欄位 two column (第二種:更好解法 linq select new)

【範例1】
        public IQueryable CompanyList()
        {
            IQueryable result = null;


            var q = from o in Context.Company
                    select new
                    {
                        o.CodeName,
                        o.CodeValue,
                    };
            result = q.ToList().AsQueryable();

            return result;
        }

解析:
{System.Collections.Generic.List`1[<>f__AnonymousType0`2[System.String,System.String]]}

【範例2】
        public IEnumerable CompanyList()
        {
            IEnumerable result = null;


            var q = from o in Context.Company
                    select new
                    {
                        o.CodeName,
                        o.CodeValue,
                    };
            result = q.ToList();

            return result;
        }

解析:
result = Count = 3


提供給 dropdownlist 或 radiobox 或 checkbox 使用

【LINQ】Select new two column 只撈兩個欄位,再轉回CLASS 類型 (第一種)

【LINQ】Select new two column  只撈兩個欄位,再轉回CLASS 類型   (第一種)
以下這樣做法太麻煩了

        public IQueryable CompanyList()
        {
            IQueryable result = null;

            result = (from o in Context.Company
                      orderby o.Sort ascending
                      select new
                      {
                          CodeName = o.CodeName,
                          CodeValue = o.CodeValue,
                      }
                     ).ToList()
                    .Select(x => new Company
                    {
                        CodeName = x.CodeName,
                        CodeValue = x.CodeValue,
                    }).AsQueryable();

            return result;
        }

{System.Linq.Enumerable+WhereSelectListIterator`2[<>f__AnonymousType0`2[System.String,System.String],Dcn.SqlClient.Company]}

2016年7月31日 星期日

【旅遊記】觀音山 硬漢嶺

觀音山 硬漢嶺

2016/08/01 已完成

適合大家老少一同去的地方,風景超美的!

2016年7月23日 星期六

【初嚐美食】Pizza 車子 手工炭烤披薩

【初嚐美食】Pizza 車子 手工炭烤披薩

最近家中附近出了一台PIZZA

付了錢180元吧,有點忘了,小貴

吃完的感覺是, 還是必勝客的好吃.也比較便宜




【旅遊記】新北市 滿月圓森林遊樂區 (非廣告文)













處女瀑布











【股東會紀念品】2016年 中鋼

【股東會紀念品】2016年 中鋼









【初嚐美食】荷亞輕食館輔大店 (非廣告文)

店名:荷亞輕食館輔大店
地址:新北市新莊區中正路603號


心得:
冷氣有涼、紅茶、綠茶好喝(無限續),漢堡牛肉(肉不錯吃,但漢堡的麵包有點乾)
價格中,大約200元,推薦 紅茶一定要包套餐..單點30元紅茶也不錯



正點飲品






【小草的日記】20160723 第二周 依舊小小顆的,一下死一下活

終於過了第二周

但我的花怎麼一下死掉掉一下活過來

原因查到,是因為「水」的關係,不能用隔夜水
隔天的水有毒,要新鮮的「水」





這張拍的最清楚





這張也蠻清楚的



【小草的日記】20160717 第一周 終於發芽了-感動

人生丫,終於等到你了.寶貝
從無到有,等了四天出現了...






雙胞胎

2016年7月20日 星期三

【自然人憑證】公司 搭配 自然人憑證申請 驗證


一、先確認你的身份,申請CA 憑證
二、MOICA內政部憑證管理中心-身分確認服務申請

身份:公家機關
單位:GCA 政府憑證管理中心
網址:https://gcaweb.nat.gov.tw/GCAEE/GCA2Test/GCAPKCS10/P10-1.html
PS.不收錢,屬財團法人類

身份:一般公司行號
單位:工商憑證
非 IC 卡申請
網址http://moeaca.nat.gov.tw/moeacaee.html
PS.收錢,一般公司,憑證效期自製卡日起算五年,到期後憑證即自動失效,各工商憑證持卡用戶,可於憑證到期日前60個日曆天內重新申請





【ASP.NET Web Form】Microsoft AspNet FriendlyUrls 友善網址 問題 404 處理

工具:Microsoft.AspNet.FriendlyUrls
NuGet : Microsoft.AspNet.FriendlyUrls.Core

俗稱:友善網址

說明:
若佈署環境在Windows 2008 或 R2 ,必需 在 web.config 加如以下設定,不然 IIS 會跳出 404 錯誤訊息

 
   
   
 


或下載:KB980368

【404 解決問題參考連結】

國外
https://weblog.west-wind.com/posts/2011/Mar/27/ASPNET-Routing-not-working-on-IIS-70

國內
https://msdn.microsoft.com/zh-tw/library/ee358760(v=vs.110).aspx

http://blog.darkthread.net/post-2015-05-30-aspnet-mvc-on-win2008.aspx

【安裝設定參考連結】
http://vmiv.blogspot.tw/2014/02/aspnet-web-sitefriendly-url.html

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

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

2016年7月6日 星期三

【ASP.NET】Gamil Smtp 設定

            var client = new System.Net.Mail.SmtpClient("smtp.gmail.com", 587)
            {
                EnableSsl = true,
                DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network,
                UseDefaultCredentials = false,
                Credentials = new System.Net.NetworkCredential("XXX帳號XXX@gmail.com", "XX密碼XXX")
            };


啟用發信
1.Impt 啟用

2.安全性較低的應用程式存取權限」為「啟用」(預設是「停用」
https://www.google.com/settings/security/lesssecureapps

2016年7月5日 星期二

【Asp.MVC】SessionID 每次都不一樣 問題

【Asp.MVC】SessionID 每次都不一樣 問題

HttpContext.Session.SessionID

因為在 Global.asax 檔案內 沒有 Session 事件記錄

新增以下兩行:
 protected void Session_Start(object sender, EventArgs e)
{

}

protected void Session_End(object sender, EventArgs e)
{

}

就搞定了