0

Jquery で @URL.Action( "name", "controller", parameters} を使用する方法を提案できますか? または、ホーム ディレクトリへの相対ルートを取得します。

次のコードを使用して JQuery get を使用する必要があります。

 $(".ag").click(function () {
    var id = this.id.replace("message_", "");
    var cd = this.id.replace("message_", "display_message_");
    $.get("/MRN/_Details_Message", function (data, status) {
        document.getElementById(cd).innerHTML = "Data: " + data + "\nStatus: " + status;
    });
});

問題は、JS ファイルが分離されている場合は使用できず、@URL.ActionGoogle の例では、MVC で相対 HTML パスを使用すると常に苦情が発生することです。

4

5 に答える 5

1

javascript からアクセスする必要があるルートを公開するために、非常に単純な MVC コントローラーを作成しました。私の GitHub で見つけることができます -> https://github.com/tucaz/JSRouteController

于 2013-07-08T20:25:18.867 に答える
0

1 つの方法は、URL をパラメーターとして渡し、すべての興味深い URL をページの一部としてレンダリングすることです。何かのようなもの

ページ上:

...var detailsUrl = '@Url.Action(....)';

JavaScript の場合:

  $(".ag").click(function () {
    var resultSelector = this.data("resultselector");
    $.get(detailsUrl , function (data, status) {
        $(resultSelector).html("Data: " + data + "\nStatus: " + status);
    });
});
于 2013-07-08T20:33:03.020 に答える
0

「MRN」がコントローラーで、「_Details_Message」がアクションであると仮定すると、次のようになります。

$.get('@Url.Action("_Details_Message", "MRN")', function (data, status) {
    document.getElementById(cd).innerHTML = "Data: " + data + "\nStatus: " + status;
});

これにより、ルート アクションが "/MRN/_Details_Message" として JavaScript に埋め込まれ、適切なルートが先頭に追加されます。

于 2013-07-08T20:38:02.527 に答える