2011-04-29 2 views
0

ASP.NET MVC 3 사이트를 사용 중입니다. 링크 목록이있는보기가 있어야합니다. 이 목록은 jQuery를 사용하여 채워지거나 작성됩니다. jQuery를 사용하여 Ajax.ActionLink를 추가하는 방법은 무엇입니까?

지금, 이전에는 (별도의 자바 스크립트 파일에) 그냥 자바 스크립트 함수에 말함으로써 일 :

$(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

Nope :(오직 li 부분 만 인식됩니다. <% ... 부분 : IE에서 인식되지 않고 공백 목록이 표시되고 Chrome에서는 <% = Ajax.ActionLink (.. . 목록의 각 항목에 대해 – Dieter

+0

질문에 "별도의 javascript 파일"로되어 있으므로 <% = 작동하지 않습니다. –

+0

별도의 js 파일에 있어도 작동하도록 만드는 방법이 있습니까? js를보기가 아닌 별도의 파일에 넣는 것은 팀에서 프로젝트에서 사용하는 필수 규칙입니다. – Dieter

관련 문제