很難得的遇到一次User全部被系統踢出去的經驗
所以判斷是IIS自己踢的
找了一下設定在
IIS > 應用程式集區 > 集區名稱上右鍵 > 進階設定
如圖
固定時間間隔(分鐘):預設是1740改成0就不會回收了
2013年11月25日 星期一
2013年11月17日 星期日
Javascript 秒數轉時分秒
最近常在網頁上用到
尤其是撥html5 video
尤其是撥html5 video
function formatSecond(secs) { var hr = Math.floor(secs / 3600); var min = Math.floor((secs - (hr * 3600)) / 60); var sec = parseInt( secs - (hr * 3600) - (min * 60)); while (min.length < 2) { min = '0' + min; } while (sec.length < 2) { sec = '0' + sec; } if (hr) hr += ':'; return hr + min + ':' + sec; }參考網址 點我
2013年11月12日 星期二
2013年11月9日 星期六
Asp.net MVC 實作抓最大排序及繫結的方法(15)
先廢話一下
其實很簡單但是有時會無法繫結
Controller部份先
但如何修改成能抓ViewBag
而且最好以欄位名稱命名
這樣在Model Binding時就能抓到值喔
不然會抓不到資料有興趣可以試試 參考網址
其實很簡單但是有時會無法繫結
Controller部份先
//抓最大值 int Sort = (from u in db.TabContent where u.TabID==tabid select u.Sort).DefaultIfEmpty().Max(x => x == null ? 0 : x); ViewBag.Sort = Sort + 1;以上這部份很簡單沒問題吧
程式碼自動產生會這樣@Html.LabelFor(model => model.Sort, new { @class = "control-label col-md-2" })@Html.TextBoxFor(model => model.Sort) @Html.ValidationMessageFor(model => model.Sort)
但如何修改成能抓ViewBag
改成用弱型別是一個方法記得"Sort"這樣就能抓到ViewBag了@Html.LabelFor(model => model.Sort, new { @class = "control-label col-md-2" })@Html.TextBox("Sort",null, new { @class = "form-control" }) @Html.ValidationMessageFor(model => model.Sort)
而且最好以欄位名稱命名
這樣在Model Binding時就能抓到值喔
不然會抓不到資料有興趣可以試試 參考網址
2013年11月4日 星期一
Asp.net MVC 實作jQuery+Html.DropDownList更換頁面資料(14)
先廢話一下
這功能蠻實用的原本還想說用AjaxBeginForm但不知該如何寫
雖然寫出來了但應該還有許多可以地方可以加強
Controller部份先抓產生下拉選單的資料
也放一個DIV來準備給jQuery用
所以這時畫面應該只剩一個下拉選單
我們要讓下拉後變更整個Table裡的資料
怎麼做當然就是去呼叫剛的頁面
要動態更新DOM我只會jQuery哈
但_List.cshtml裡除了原本宣告model要放
參考網址
這功能蠻實用的原本還想說用AjaxBeginForm但不知該如何寫
雖然寫出來了但應該還有許多可以地方可以加強
Controller部份先抓產生下拉選單的資料
public ActionResult Index( ) { ViewBag.TabData = new SelectList(db.Tab, "TabID", "TabName"); //產生下拉選單 return View(); }View的部份也放一個@Html.DropDownList接收下拉選單
也放一個DIV來準備給jQuery用
@Html.DropDownList("TabData", null, null, new { id = "ddTabData" })然後產原本產生的Index裡的Table另外開一個_List.schtml裡
所以這時畫面應該只剩一個下拉選單
我們要讓下拉後變更整個Table裡的資料
怎麼做當然就是去呼叫剛的頁面
要動態更新DOM我只會jQuery哈
去呼叫@(Url.Action("GetList", "TabContent", null))
public ActionResult GetList(int tid = 1) { var tabcontent = db.TabContent.Where(u => u.TabID == tid).Include(t => t.Account).Include(t => t.Account1).Include(t => t.Tab); return View("_List",tabcontent.ToList() ); }這樣就會回傳一整個Table回來
但_List.cshtml裡除了原本宣告model要放
@{ if (IsAjax) { Layout = null; } }上面這句也要加,不加差在那邊各位可以自己測試!!
參考網址
2013年11月2日 星期六
Asp.net MVC 實作AutoMapper後加上PagedList(13)
先廢話一下
今天終於將MVC課程上完了
接下來就要多練習
上篇文章提到AutoMapper可自動轉型
但試了很久就是沒法轉成PagedList
還好運氣不錯找到一篇文章>
但這樣在View中是完全不需要更改的
寫到現在這樣CRUD最底層都差不多寫好了
簡單的專案也差不多快完成了
參考網址
點我
今天終於將MVC課程上完了
接下來就要多練習
上篇文章提到AutoMapper可自動轉型
但試了很久就是沒法轉成PagedList
還好運氣不錯找到一篇文章>
public ActionResult Index() { Mapper.CreateMap說真的我還真看不太懂最後一行那句(); var OrderList = db.Account.OrderBy(o => o.AccountID);//設定OrderBy List var PagedList = OrderList.ToPagedList(p, 2);//分頁的 List var viewmodel = Mapper.Map , IEnumerable >(PagedList.ToArray()); // 分頁列表轉換成ViewModel var query = new StaticPagedList (viewmodel, PagedList.GetMetaData()); // reconsitute a new IPagedList containing the viewmodels return View(query); }
但這樣在View中是完全不需要更改的
寫到現在這樣CRUD最底層都差不多寫好了
簡單的專案也差不多快完成了
參考網址
點我
2013年11月1日 星期五
Asp.net MVC 實作AutoMapper Mapping Model and ViewModel(12)
先廢話一下
第一次寫MVC檢視一下程式碼
發覺定義了太多ViewModel
只要新增一個欄位後View Controller Model居然都需要改
天阿這一定不會是我想要的
相信寫MVC的人覺對不會想發生這種問題
Google搜尋後發覺有一個好的套件
AutoMapper在NuGet裡搜尋就能找到安裝
來看一下原本的程式碼
唉~對於最內部系統的人最痛苦的事就是新增欄位了
來看一下使用AutoMapper
只是目前不知會不會有什麼Bug 參考網址
點我
第一次寫MVC檢視一下程式碼
發覺定義了太多ViewModel
只要新增一個欄位後View Controller Model居然都需要改
天阿這一定不會是我想要的
相信寫MVC的人覺對不會想發生這種問題
Google搜尋後發覺有一個好的套件
AutoMapper在NuGet裡搜尋就能找到安裝
來看一下原本的程式碼
public ActionResult Index() { var query = from u in db.Account select new AccountVM { AccountID = u.AccountID, AccountName = u.AccountName, IsUsed = u.IsUsed, LoginIP = u.LoginIP, LoginDate = u.LoginDate, Name = u.Name, Email = u.Email }; return View(query); }看以上程式碼只要加一個欄位每次都要跑來修改
唉~對於最內部系統的人最痛苦的事就是新增欄位了
來看一下使用AutoMapper
public ActionResult Index() { Mapper.CreateMap這樣不管怎麼增加欄位都不需要在Controller修改了(); List account = db.Account.ToList(); List< AccountVM> query = Mapper.Map< List< Account>,List< AccountVM>>(account); return View(query); }
只是目前不知會不會有什麼Bug 參考網址
點我
Asp.net MVC 實作DropDownList繫結資料庫selected(11)
先廢話一下
DropDownList很簡單阿
WebForm用selectvalue=xxx就好
但MVC的DropDownList讓我研究了一早上
大部份在網路上找的都是建立或者連動DropDownList
可能是我搜尋功力差找不到繫結資料庫又能Select的方法
自己想了一個很瞎的方式
就是自己判斷抓出來的值跟DropDownList有沒有一樣
然後把Select變True
只是不知這樣是否為最佳的寫法
以下是View程式碼
DropDownList很簡單阿
WebForm用selectvalue=xxx就好
但MVC的DropDownList讓我研究了一早上
大部份在網路上找的都是建立或者連動DropDownList
可能是我搜尋功力差找不到繫結資料庫又能Select的方法
自己想了一個很瞎的方式
就是自己判斷抓出來的值跟DropDownList有沒有一樣
然後把Select變True
只是不知這樣是否為最佳的寫法
以下是View程式碼
@{ ListController如下list = (List )ViewBag.TabColumnName; foreach (var s in list ) { if (item.TabColumnName.Equals(s.Value)) { s.Selected = true; } else { s.Selected = false; } } } @Html.DropDownListFor(modelItem => item.TabColumnName, list)
ViewBag.TabColumnName =TabColumnVM.getTabColumnName();
訂閱:
文章 (Atom)