2016-04-26 15 views
1

autocompletetextboxに統合しようとしています。しかし、actionメソッドでモデルからデータを取得することはありません。これは、コンソールに次のエラーがスローされます。以下はテキストボックスの自動補完404エラー、コントローラ/アクションが見つかりません

http://localhost:56393/Api/AutoCompleteChannelName 404(見つかりません)

は.cshtmlコードです:

<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css"> 

はJavaScript:

<script src="//code.jquery.com/jquery-1.10.2.js"></script> 

​​

入力タグ:

<input id="channelName" class="form-control" value="" name="channelName" placeholder="Enter Channel Name To Filter" /> 

のActionResult:

public JsonResult AutoCompleteChannelName(string term) 
    { 

     List<DIM_CHANNEL> obj = bc.DIM_CHANNEL.Where(m => m.CHANNEL_NAME.ToLower().Contains(term.ToLower())).Distinct().AsEnumerable().Select(i => new DIM_CHANNEL 
     { 
      ChannelName = i.CHANNEL_NAME, 
      ChannelKey = i.CHANNEL_KEY, 
     }).ToList(); 

     return Json(obj, JsonRequestBehavior.AllowGet); 
    } 

すべてのヘルプは非常に高く評価されるだろう。

+1

よりコントローラのクラス名は何ですか? –

+1

URLのヘルパーメソッドを使用する: '' url: '@Url.Action(" ActionName "、" ControllerName ") '' ' –

+0

コントローラはAPIであり、アクションメソッドはAutoCompleteChannelName – N2J

答えて

1

は最初のGETにPOSTを変更するにはGET。また、WebApiConfig.csにWebAPIルートが定義されていますか?

それがない場合は、そのルーティングを削除する必要がある、または他のものにあなたのコントローラの名前を変更するのいずれかAPIController

+1

私はPOSTに変更し、コントローラの名前を変更し、それは動作します..幸せ..おかげで:) – N2J

-1

あなた化するJsonResult方法で

[HttpGet] 

属性を逃しました。

次のコードを参照してください、それはあなたのために働く願っています:

[HttpGet] 
    public JsonResult AutoCompleteChannelName(string term) 
     { 

      List<DIM_CHANNEL> obj = bc.DIM_CHANNEL.Where(m => m.CHANNEL_NAME.ToLower().Contains(term.ToLower())).Distinct().AsEnumerable().Select(i => new DIM_CHANNEL 
      { 
       ChannelName = i.CHANNEL_NAME, 
       ChannelKey = i.CHANNEL_KEY, 
      }).ToList(); 

      return Json(obj, JsonRequestBehavior.AllowGet); 
     } 

おかげ

+0

私が確認されている限り、httpgetはそこに存在しません。デフォルトのメソッド取得メソッドとみなされます。しかし、私は、httpgetを置いてみたが、まだメソッドを打つことはしなかった。 – N2J

+0

ok タイプを「POST」、 データタイプ:「json」、 のスクリプトから削除してもう一度お試しください。 確かに役立ちます。 ありがとう –

+0

投稿の種類を変更してコントローラ名を変更しました。動作します。ありがとう:) – N2J

1

変更あなたのAJAX呼び出しのタイプは、すべての

$.ajax({ 
      url: "/Api/AutoCompleteChannelName", 
      type: "GET", 
      dataType: "json", 
      data: { term: request.term }, 
      success: function (data) { 
       response($.map(data, function (item) { 
        return { 
         label: item.ChannelName, 

        }; 
       })) 
      } 
     }) 
関連する問題