標籤

ASP.NET MVC (29) Visual C# (15) JQuery (10) Plugins (8) JQuery Plugins (6) JavaScript (6) MySQL (5) CSS (4) LinQ (4) Mac OS (4) CentOS (3) Design Pattern (3) Entity Framework (3) IIS (3) Python (3) Windows (3) php (3) Docker (2) LAMP (2) SQL Server (2) WCF (2) .NET (1) .NET Core (1) AWS (1) Browser (1) GIS (1) IE (1) Internet Security (1) Linux (1) Platform (1) React (1) SEO (1) Testing (1) VMware (1) Windows 7 (1) cookie (1) curl (1) laravel (1) phpBB (1) session (1) 中古屋 (1) 透天 (1) 閒言閒語 (1) 面試 (1) 鳥松 (1)

2011年9月29日 星期四

[LinQ] 確定LinQ的預設值(FirstOrDefault DefaultIfEmpty)

var result = (...).FirstOrDefault();
if( result != null )
{
...
}


有時候我常常為了判斷result到底有沒有結果煩惱,到底甚麼時候是null,甚麼時候是預設值?
如果用下面的方法就簡單多了:

var defaultValue = default(List);
if( result != defaultValue )
{
...
}



2011年9月23日 星期五

[JQuery] Jquery 常用操作

1. 某個Table除了第一列資料,其餘列全部清除:


$(document).ready(function() {
$("someTableSelector").find("tr:gt(0)").remove();
});




[Plugins] SWFUpload 動態指定Post參數

因為專案中每次上傳都有可能有不同的Post參數,查了一下官方文件,有【addFileParam()】這個好用的方法,但是這個方法似乎無法從外部呼叫,參考了一下網路其他文章,可以修改handlers.js中【function uploadStart(file) {}】函數來呼叫【addFileParam()】方法。

一個post參數名稱為"pId",值為2的範例:

function uploadStart(file) {
try {
this.addFileParam(file.id, "pId", "2");
var progress = new FileProgress(file, this.customSettings.progressTarget);
progress.setStatus("上傳中...");
progress.toggleCancel(true, this);
}
catch (ex) { }
return true;
}





Reference:

2011年9月19日 星期一

[ASP.NET MVC] 在View中使用預設的客戶端驗證

Using the client side validation in ASP.NET MVC3 without Model.
---
我既想要使用ASP.NET MVC的客戶端驗證,但是我又不想綁定資料模型,其實很簡單,只需將每個想要驗證的加上以下屬性:
  • data-val = true
  • data-val-(required|regex|range|equalto|remote|length|number)="顯示的錯誤訊息"

然後除了require不用規則,其他規則根據下列來加入:
  • data-val-regex-pattern
  • data-val-range-min
  • data-val-range-max
  • data-val-equalto-other
  • data-val-remote-url
  • data-val-remote-type
  • data-val-remote-additionalfield
  • data-val-length-min
  • data-val-length-max
例如我有個input名稱叫做keyword,他是屬於必要項目,那設定如下:
<input id="keyword" type="text" value="" name="keyword" data-val-required="關鍵字欄位為必要項。" data-val="true">

*注意true不能大寫為True

---
當然View中該引用的東西還是得引用:
1. 下面兩個js檔案
"~/Scripts/jquery.validate.min.js",
"~/Scripts/jquery.validate.unobtrusive.min.js"

2. @Html.BeginForm內部要加上:@Html.ValidationSummary(true)

---
Reference:



[Entity Framework] 發生 錯誤0019: EntityContainer名稱必須唯一

錯誤訊息: 錯誤0019: EntityContainer名稱必須唯一

error 0019: The EntityContainer name must be unique

--
因為將有包含Model的類別全數移動到另一個ClassLiberary專案,結果運行的時候發生上述錯誤,上網查找後,有可能的原因為:
1. 參考的不同命名空間中有兩個名稱相同的EntityContainer(*.edmx)。
2. 將專案bin目錄中所有dll與pdb完全清除,並且重新編譯。

Reference:




2011年9月15日 星期四

[MySQL] 還原資料庫時發生錯誤 Incorrect string value for column 'blahblahblah' at row 1

起因是要從某個 *.sql 的檔案還原至本機的MySQL Server,指令如下:
mysql -u root -p crazyshop1 -P 3306 < db_XXXX.sql

錯誤訊息如下:

Google一下發現應該是編碼沒有設定為UFT-8的關係:

於是在MySQL Workbench中設定,但是不管是使用AfterTable方式還是設定預設值,都無法排除錯誤:
最後經理在還原指令中指定預設編碼,就搞定收工了~
mysql --default-character-set utf8 -u root -p -P 3307 crazyshop < db_XXXX.sql

看來完全不懂MySQL,要加油了~

2011年9月14日 星期三

[Windows 7]運行程式發生AppCrash


因為Vista之後有所謂的資料執行防止機制(DEP),如果想關閉此功能,

可以在開始->執行輸入"SystemPropertiesAdvanced.exe",

[進階]標籤 -> [效能]中點選[設定(S)...],在標籤[資料執行防止]中加入會Appcrash程式的路徑,



大功告成~

2011年9月5日 星期一

[ASP.NET MVC] 如何在View中 Post List型別的參數給Controoler

方法很簡單,只要把對應的input name設定成陣列的型態就可以了,範例:










[HttpPost]
public ActionResult PrintBarcode( List< Models.test > cmd)
{
...
}
class Test{
public long ProductId { get; set; }
public int Quantity { get; set; }
}


Post時候參數如果透過JQuery,則可以直接把form給序列化: $('#formId').serialize()



Reference:http://kristofmattei.be/2009/10/19/asp-net-mvc-model-binding-to-a-list/http://blog.gfader.com/2010/05/aspnet-mvc-model-binding-to-list-or-how.html

2011年9月4日 星期日

[JQuery] 檢查上傳檔案的附檔名

Check the extension file name for < input type="file" >

範例長這樣子:

由於檔案名稱在使用者選擇後我們是不能修改的(安全性問題),所以我們可以整段HTML替換,這是其中一種方式,個人覺得還不錯~


    //檢查Ext副檔名

function CheckExtensionMusic() {
var type = /(.mp3|.MP3|.mP3|.Mp3)$/i;
if (!type.test($(".fileToUploadMusic").val())) {
$(".fileToUploadMusic").replaceWith("");
}
else {
}
}

2011年9月1日 星期四

[WCF] 小筆記

Per Session 只要同個Session 只建一個Thread 去服務.
Per Call 他就不管你的訊息從哪裡來,每個Request 都建一個Thread 去服務.
Per Singleton 全部Request 都用同一個Thread服務.

只有在特殊情況,所有呼叫Service-Host的client端,都必須使用同一個硬體或是其它需求者,或是分享企業邏輯者,才會只用Single (可以參考Design Pattern中的Singleton )
http://stackoverflow.com/questions/1756487/should-wcf-service-typically-be-singleton-or-not


--
3種方式可以裝載WCF Service: 1. Windows Service 2. IIS 3.
[其實高興的話,也可以用WindowsForm,或是Console App].

--
MEX 有 Request/Replay ,OneWay 跟 Call Back 方式,看你的需求.

出現鎖死 [ServiceBehaviorAttribute.ConcurrencyMode]
詳解:http://softtechhelp.blogspot.com/2010/08/wcf-6service-behavior-concurrencymode.html
解法:http://www.switchonthecode.com/tutorials/wcf-callbacks-hanging-wpf-applications

對於三種ConcurrencyMode,有個中國網站解釋的不錯:




[WCF] 實作WCF時 出現"無法載入指定的中繼資料資源"

起因是因為WCF Service中使用了Entity Framework,但是實作服務的專案並沒有加入相對應的連線字串,以及引用System.Entity,可參考保哥這裡的作法: