2016-05-19 17 views
0

私は数時間スタックを検索していて、解決策を見つけることができないようです。私は基本的なjqueryオートコンプリートを実装しようとしていますが、私は新しいページに私を送信するためにオートコンプリートドロップダウンの項目をクリック/選択すると、私のhttppost actionresultはビューを返していません。それはhttppostコントローラを介して実行されます(すべてのパラメータは渡され、クエリは実行され、モデルはビューに渡されます)。私はそれが私のajax投稿のwindow.location.reload();に起因すると確信していますが、これを理解することはできません。私もwindow.location.href = link;を試しましたが、それもうまくいきませんでした。助けてください:(Jquery autocomplete httppost actionresultがAjax投稿の後に読み込まれない

JS

$("#queryTypeInput").autocomplete({ 
    source: "/Dashboard/EnterMatterFormAjax/", 
    select: function (event, ui) {     
    var inputVal = ui.item.value.substring(0, 10);        

    $.ajax({type:"POST", 
    url:"Dashboard", 
    data:{ queryType: queryTypeval }, 
    success: function (result) { 
     window.location.reload(); //this is where i think the issue is 
    } 
    }) 
}); 

EnterMatterFormAjaxコントローラ(WORKING FINE)

public JsonResult EnterMatterFormAjax(string term) 
    { 
     var termReq = Request["term"];    
     var termReq2 = ""; 
     if (termReq.All(char.IsDigit)) 
     { 
      termReq2 = termReq + "%"; 
     } 
     else 
     { 
      termReq2 = "%" + termReq + "%"; 
     } 
     var ajaxMatterData = GetAjaxMatterData(termReq2); 

     return Json(ajaxMatterData, JsonRequestBehavior.AllowGet); 
    } 

インデックスコントローラー(WORKING FINE)

[HttpPost] 
    public ActionResult Index(string queryType) 
    { 
     ...goes through code logic... 
     return View(); 
    } 
+1

自動補完選択イベントの中でなぜ 'window.location.reload();'を使用していますか?あなたはページをリロードしたいですか? – Shyju

+0

移動したい新しいページとは何ですか?あなたはそれにどのデータを渡したいですか? – Shyju

+0

@Shyjuを選択した後、ページに[HttpPost] Actionresult Indexの情報をロードします。リロードは私の最後に失敗した試みでした。 – jellz77

答えて

0

@KarthikMRのようにwindow.location.hrefを使用するのではなく、オートコンプリートの後にフォームを再送信しました。私はコントローラーの動きを変えなければならなかったので、私はちょうど最も簡単な道を歩いた。 @ KarthikMRの提案は私の行動を変えたときにも機能したので、これは実行可能なオプションです!下記の更新されたjs:

$("#queryTypeInput").autocomplete({   
source: function (request, response) { 
    $.post("Dashboard/EnterMatterFormAjax", request, response);    
}, 
select: function(event, ui){    
    $("#queryTypeInput").val(ui.item.value); 
    $("#enterMatterForm").submit(); 
} 
}); 
+0

okies!しかし、同じフォームにデータを投稿するときには、あなたのURLが/ダッシュボードを指している必要があります。この制限が必要ない場合は、提案されテストされている方法を使用することができます。 –

関連する問題