0

mvc アクションを実行してビューを返すには、以下に示す jquery が必要です。

   $("#workspaces").change(function () {
    var workspaceId = $('#workspaces').val();
    var url = '@Url.Action("SingleWorkspace", "Workspaces", new { id = workspaceId })';
    $.ajax({
        url: url,
        success: function () { alert("true"); }
    });
});

基本的に私が持っている最初の問題は、varがその上で宣言されている場合でも、urlアクション内のworkspaceIdを認識しないことです。

次に、これはドロップダウン メニューであるため、部分ビュー内にあります。上記の url.action を呼び出すと、どのようにページがロードされるのでしょうか?

任意の助けをいただければ幸いです

乾杯

4

4 に答える 4

0

まず、workspaceIdはクライアントで定義されますが、はサーバーで実行されるため、コードが実行@Url.Actionされる時点で変数は存在しません。代わりに jQuery ajax 呼び出しの data プロパティとして@Url.Actionを送信するか、クライアントの代わりに url javascript 変数に を追加します。workSpaceIdworkspaceId

第 2 に、たとえばアクションが部分的なビューを返す場合、jQuery 成功ハンドラーは .html などの要素に挿入できる html 文字列を受け取りますdiv

于 2012-09-21T21:42:22.410 に答える
0

JavaScript ではそのようなことはできません。あなたができることは、SingleWorkSpaceアクションメソッドへのパスを取得し、それに追加するworkspaceIdことです。

var url = "@Url.Action("SingleWorkspace", "Workspaces")/"+workspaceId;

また

var url = "@Url.Action("SingleWorkspace", "Workspaces")?id="+workspaceId;
于 2012-09-21T21:42:40.340 に答える
0
   var workspaceId = $('#workspaces').val();  
   var url = '@Url.Action("SingleWorkspace", "Workspaces", new { id = workspaceId })';

Url.Action- サーバー コード (ASP.NET MVC ヘルパー) でありworkspaceId、クライアントで選択されているため、urlここでは作成できません。

于 2012-09-21T21:41:03.633 に答える
0

以下を使用できます。

var workspaceId = $('#workspaces').val();
var url = '@Url.Action("SingleWorkspace", "Workspaces", new { id = "__id__" })'
    .replace('__id__', workspaceId);
于 2012-09-22T08:23:59.807 に答える