2011-03-03 4 views
0

jquery를 사용하여 partials를 추가하는 방법은 무엇입니까? 면도기 - asp.net의 MVC - JQuery와는

$("#add_task").click(function() { 
      $('#tasks').append('@Html.Raw(Html.Partial("_task_fields").ToHtmlString())'); 
     }); 

나는 것 같다 ... 난 당신이 예를 들어 , 많은 작업과 프로젝트 ... 동적으로 자바 스크립트를 통해 요소를 추가 할 수있는 양식을 만들려면 말 이 접근 방식에 문제가있어서 자바 스크립트가 인코딩되지 않습니다 ... HttpUtility.JavaScriptStringEncode를 사용하면 클래스 "someClass"와 같은 속성을 가진 요소에 따옴표가 추가됩니다.

내 task_fields 부분은 난 그냥 add_task 링크가 제대로 작동하려면이

<tr> 
    <td> 
     Task 
    </td> 
    <td> 
     <input type="text" name="task[name]" /> 
    </td> 
</tr> 

같은 것입니다.

도와주세요.

+0

가능한 [asp.net mvc 및 jquery 도움말] (http://stackoverflow.com/questions/5182630/help-with-asp-net-mvc-and-jquery) –

답변

0

jquery the jquery template 플러그인을 살펴보십시오. 이 시나리오에서는 IMO 훨씬 깨끗한 접근 방식과는 다릅니다.

jquery 템플릿 만 사용하는 방법 외에도 jquery 템플릿 블록에 부분을 렌더링하고 원하는 경우 두 가지 기술을이 방법으로 결합 할 수 있습니다.

+0

안녕하세요 애드리안, 우리는 우리 프로젝트에서 jquery 템플릿 플러그인을 사용하고, 우리는 그 중 일부를 준비했습니다. 토론 장소가 아니지만 성능과 확장성에 대해 궁금합니다. 그게 옳은 길이라고 생각하니? –

+0

@ 누리 : 웹 사이트 전체에서 현재 프로젝트 (logmytime.de)에서 사용하고 있으며 결과에 매우 만족합니다. 웹 페이지 당 최대 50 개 정도의 jquery 템플릿 인스턴스를 표시하고 있지만 확장 성 같은 scnenarios는 결코 문제가되지 않습니다. –

+0

정보를 제공해 주셔서 감사 드리며 귀하의 사이트를 좋아합니다! 정말 멋져 보여요! –

1

확인. 당신은 조금 다른 방식으로 그것을 할 것입니다. 컨트롤러 대신 부분에 작업을 작성하십시오.

public class HomeController : Controller 
{ 
     public ActionResult MyPartial(/*some parameters*/) 
     { 
      object someData = foo(/*some parameters*/); 
      return PartialView("_MyPartial", someData); 
     } 
} 

**And call action with Ajax.** 

$("#add_task").click(function() { 
$('#taskItem').load(@Url.Content("~/home/MyPartial")); 
.... 
}) 

물론 "taskItem"을로드 한 후에 "task"에 추가 할 수 있습니다.

+0

이 문제가 발생하지 않았습니까? – ignaciofuentes

+0

예. 나는 실제로 내 일부 페이지에서 그것을 사용합니다. MyPartial call _MyPartial을 잊지 마시기 바랍니다. _MyPartial은 공유 또는 홈 경로에 있어야합니다. –

관련 문제