0

アプリケーション内でasp.netmvc4、knockout-jsを使用しています。jsファイルからコントローラーに電話をかけるにはどうすればよいですか?

このコードをビュー(かみそり)ページに書き込むと機能します:

<script type="text/javascript">
    $(document).ready(function () {
        var url = '@Url.Action("GetTechnicians", "Ticket")';
        $.post(url, null, function (data) {                    
            alert("get data");
        });
    });     
</script>

ここで、*。jsファイルで呼び出しを行います。問題は、Url.Actionjsファイル内で無効であるということです。

global.asaxのURLマッピングは次のとおりです。"{culture}/{controller}/{action}/{id}", コントローラーの署名は次のようになります。 public JsonResult GetTechnicians()

jsファイルで使用する場合:

var url = "/Ticket/Technicians";

エラーが発生します:"NetworkError: 404 Not Found - http://localhost/Ticket/Technicians"

jsファイルからの呼び出しを完了する方法を知りたいですか?

4

1 に答える 1

1

あなたは次のことをすることができます...

JSファイル内

var app = {
  urls: {
    getTechnicians: null
  },
  culture: "en",
  getTechnicians: function () {
        if (!app.urls.getTechnicians) {
          throw new Error("getTechnicians URL not set");
        }
        $.post("/" + app.culture + app.urls.getTechnicians, null, function (data) {                    
            alert("get data");
        });
  }
};

あなたの見解では

<script type="text/javascript" src="myscriptfile.js"></script>
<script type="text/javascript">
    $(document).ready(function () {
     app.urls.getTechnicians = '@Url.Action("GetTechnicians", "Ticket")';
     app.culture = "en-us";

     // Later on...
     app.getTechnicians();

    });     
</script>
于 2012-08-20T20:09:13.253 に答える