2017-10-22 11 views
0

私はASP.NET MVCアプリケーションを持っています。私はこの行url: '@Url.Action("GetTodayList", "Home")'が動作しません知っているように、私はここで私は外部ファイルに移動することを、スクリプト、および直面している問題外部js(ASP.NET MVC)のコントローラメソッドへのパス

を持って、このアプリで

は、だから、コード

function todolisttoday() { 
    $("#list").empty(); 
    $("#counter").empty(); 
    $.ajax({ 
     url: '@Url.Action("GetTodayList", "Home")', 
     contentType: 'application/json; charset=utf-8', 
     data: JSON.stringify(), 
     type: 'POST', 
     dataType: 'json', 
     processData: false, 
     success: function (data) { 
      var list = data; 
      var count = Object.keys(data).length; 
      $("#counter").append('<b>' + "You have" + " " + count + " " + "appointments today" + '</b>'); 
      for (var i = 0; i <= list.length - 1; i++) { 
       var timeobject = new Date(); 
       timeobject.setTime(Date.parse(list[i].time)); 
       var hours = timeobject.getHours(); 
       var minutes = timeobject.getMinutes(); 
       var ampm = hours >= 12 ? 'pm' : 'am'; 
       hours = hours % 12; 
       hours = hours ? hours : 12; // the hour '0' should be '12' 
       minutes = minutes < 10 ? '0' + minutes : minutes; 
       var strTime = hours + ':' + minutes + ' ' + ampm; 
       var divslist = '<div class="listdiv">' + 
        '<b >' + (i + 1) + '</b>' + "." + " " 
        + '<b class="title">' + list[i].title + '</b>' + " " 
        + '<b >' + strTime + '</b>' + '<b class="status" style="display:none;">' + list[i].status + '<b>' 
        + '</div>'; 
       $("#list").append(divslist); 
      }; 
     } 
    }); 
}; 

です。それは機能がボタンで呼び出すする場合

私が使用することができ、このdata-request-url="@Url.Action("GetTodayList", "Home")"

しかし、関数が、私はURLパスが有効であることを行うことができますどのよう$(document).ready

でページのロードに呼ばれているのですか?

+0

のように、このRLマニュアルを設定することができますあなたのボタンに 'data- *'属性を使用してください。しかし、なぜあなたはモデル内のデータを送信するのではなく、これをやっているのですか?(副作用として、 'contentType'、' data'と 'processData'オプションは無意味なので削除できます) –

+0

私はボタンを使いません。ロード後に関数を呼び出すので、data-request-url @ StephenMueckeを使用することはできません –

+0

'var url = $(yourElement).data( 'request-url');'を使用して、なぜあなたはこれをやっているのですか?(あなたのサーバーにリクエストを送信し、応答を返してから、_sorry、あなたの情報を送信するのを忘れてしまったので、もう一度、 –

答えて

0

jsファイルをcshtmlとしてコンパイルできないため、@Url.Action("GetTodayList", "Home")はJSでは使用できません。

あなたは `$(ドキュメント).ready()`することができますので、HTMLは、ロードされている意味JSで/home/GetTodayListまたは

var jsModule = function (urls) { 
    . 
    . 
    $(document).ready(function(){ 
     $.ajax({ 
     url: urls.GetTodayList, 
     contentType: 'application/json; charset=utf-8', 
     data: JSON.stringify(), 
     type: 'POST', 
     dataType: 'json', 
     processData: false, 
     success: function (data) { 

     }); 
    }) 
} 
ビューで

<script src="..."></script> 
<script> 
    var urls={GetTodayList:'@Url.Action("GetTodayList", "Home")'} 
    jsModule(urls); 
</script> 
関連する問題