2011-04-29 22 views
0

私はASP.NET MVC 3サイトで忙しいです。リンクのリストが表示されます。このリストは、jQueryを使用して実装されます(または構築されます)。jQueryを使用してAjax.ActionLinkを追加する方法は?

は今、以前にそれが(別々のJavaScriptファイルに)ちょうどいくつかのjavascript関数に言って働いていた:各項目の

$(ul#Items).append(<li><a href=...>...</a></li>);

を配列に。

しかし、システムを変更すると、Ajax.ActionLinkが提供する機能を利用する必要があります。しかし、上記のように<%:Ajax.ActionLink ...%>を追加しようとすると、実際にはHTMLとしてではなくテキストとして付加されます(つまり、<%のリストを表示するページ:Ajax.ActionLink ... <% ?>

なぜこれが起こっているとそれを動作させるためにどのように任意の提案を

おかげ D

答えて

1

は、以下の機能していない:あなたが使用している場合はもちろん

$('ul#Items').append('<li><%= Ajax.ActionLink("Hello", "foo", new AjaxOptions { }) %></li>'); 

剃刀の眺めエンジン:

$('ul#Items').append('<li>@Ajax.ActionLink("Hello", "foo", new AjaxOptions { })</li>'); 

そして、あなたが動作するためのリンクjquery.unobtrusive-ajax.jsを含める必要がある場合がありますので、デフォルトではASP.NET MVC 3でjQueryのすべてのAjax.*ヘルパーによって使用されていることを忘れないでください。

これは個人的に私はAjax.*ヘルパーを使用しないと言われています。ここで私はそれを行うだろう方法は次のとおりです。

$('ul#Items').append(
    $('<li/>', { 
     html: $('<a/>', { 
      href: '@Url.Action("someAction", "someController")', 
      text: 'hello world', 
      click: function() { 
       $.get(this.href, function (result) { 
        alert('ajax success'); 
       }); 
       return false; 
      } 
     }) 
    }) 
); 

UPDATE:

私はあなたが別のジャバスクリプトファイルに記載されていることに気づきませんでした。それはそれを説明する。静的ファイルではサーバーサイドタグは使用できません。

+0

いいえ:(唯一の部分が認識されます)<%... part; IEでは認識されず、空白のリストが表示され、Chromeでは<%= Ajax.ActionLink(.. 。リスト内の各項目について。 – Dieter

+0

質問は "別のjavascriptファイル"と書かれているので、<%=が機能しないのはなぜですか? –

+0

別のjsファイルにあっても動作させる方法はありますか? jsをビューの代わりに別のファイルに置くことは、チームがプロジェクトで使用する必須の規則です。 – Dieter

関連する問題