2015年1月26日 星期一

Web Api 405 - 不允許用來存取此網頁的 HTTP 指令動詞

今天終於將AngularJs + web api基本的CRUD寫好了包括一下未來可能會遇到功能
發怖到了IIS主機後才發現無法修改及刪除
因為網頁原本就只有Get Post,但沒有Put跟Delete兩種 網站上有許多方法及相關解法
例如設定WebDAV等等..試了也沒用
找了一篇如下參考網站直接修改WebConfig
找到如下
 

    
    
.....
修改成
 

  
    
    
      
    
.....
.....以下空的
參考網站
405 Method Not Allowed using ASP.NET Web API

2015年1月22日 星期四

AngularJS 搭配Web Api回傳問題

今天遇到的問題是使用angularjs抓取web api
在一開始都沒問題網路上很多範例如下
js部份
 
    $http.get('/url').success(function (data, status, headers, config) {
        $scope.datalists = data;
    })
    .error(function (data, status, headers, config) {       
        $scope.error = "Error!!";
    });
web api .cs部份 vs自動產生很快吧!!
 public IEnumerable Get()
{       
  return  db.Sys_Domain.AsEnumerable();       
}
但是其實這個table join了很多Table當被join的table裡開始有資料時就會有錯誤
找了許多方式修改了web api
      public HttpResponseMessage Get()
        {
            List data = new List();
            foreach (var item in db.Sys_Domain)
            {
                Sys_Domain Row = new Sys_Domain()
                {
                   //todo
                };
                data.Add(Row);
            }
            return Request.CreateResponse(HttpStatusCode.OK, data);
        }
就可以正常的回傳了剛學習,如有更好的方式再請大家多指教!!

2015年1月15日 星期四

AngularJS 分頁

最近又開始使用AngularJS之前有練習過,但沒機會實戰
目前開始建構一個專案主要使用AngularJS
原文網址
show more , prev and next , pager
jsfiddle
show more , prev and next , pager
早上測試一下套用的方式相當簡單一下就套上了分享給大家
加入filter
Angularjs - Pagination appear after search filter

2015年1月14日 星期三

Visual Studio Entity Framework 設定連線字串問題

繼之前連線字串加密問題後
今天使用vs2013開發新增一個ADO .net 實體模型
後來無法自定連線字串
找了一下 有關Entity Framework在程式中給連線字串這篇也遇到同樣的問題
後來與同事討論有幾種改法
1.修改xxx.Context.cs
 
 public xxxEntities()
   : base("name=xxxEntities")
{
}
把name=xxxEntities改成需要的conectionstring如果有加解密可以寫一個function去呼叫
這樣就沒事了嗎錯!!!
如果model改了剛寫的都白寫了

2.修改xxx.Context.tt
修改範本方式找到以下做修改成需要的
但如果不是很有把握千萬別亂修改
找到如下
 
public <#=code.Escape(container)#>()
        : base("name=<#=container.Name#>")
    {
<#
if (!loader.IsLazyLoadingEnabled(container))
{
#>
        this.Configuration.LazyLoadingEnabled = false;
<#
}
#>
    }
修改成
 
 public <#=code.Escape(container)#>()
        : base(你要的function)
    {
<#
if (!loader.IsLazyLoadingEnabled(container))
{
#>
        this.Configuration.LazyLoadingEnabled = false;
<#
}
#>
    }
有更好的解法再等大家提供喔!!