2012-02-25 2 views
0

내 MVC3 컨트롤러에서 데이터에 액세스 할 수 있도록 클라이언트 측에서 동적으로 생성 된 텍스트 상자의 데이터를 모델 바인딩해야합니다 (jQuery .tmpl 플러그인 사용). 나는 다음 링크에서 이에 대한 코드를 발견jQuery에서 생성 된 동적 텍스트 상자의 모델 바인딩을위한 면도기 문법으로의 변환

http://www.progware.org/Blog/post/ASPNET-MVC-Binding-to-Listse28093Enumerables-on-POST-with-JQuery.aspx

이 문서는 소스 코드를 작업 alongwith 몇 가지 방법에 대해 설명합니다. 마지막 접근 방식은 내가 원하는 것이고 작동합니다. 하지만 아마 webforms 뷰 엔진 (JavaScript 블록 내부) 또는 서버 측 태그 만 사용하고있을 것입니다. 누군가가 면도기 구문으로 작업하도록 도와 주시면 감사하겠습니다.

<script type="text/javascript"> 
    @{ 
     int idx = 0; 
     foreach (var c in Model) 
     { 
      ViewData["key"] = idx; 

      <text> 
       $("#ClientTemplate").tmpl([{FirstName : "@c.FirstName", 
        LastName: "@c.LastName" , 
        idx: @idx.ToString()}]).appendTo("#ExistingClients");   
      </text> 

      idx++; 
     } 
    } 
</script> 

<script type="text/javascript"> 
    function removeClient(DivName) {$("#" + DivName).remove();} 
    var num = @Model.Count(); 
    $("#btnAddNewClient").click(function() { 
     $("#ClientTemplate").tmpl([{FirstName : "", 
            LastName : "" , 
            idx: num}]).appendTo("#NewClients"); 
     num++; 
    }); 
</script> 

나는 일시적으로 제거하는 것을 발견 :

이 같은
<script type="text/javascript"> 
    <%int idx=0; 
     foreach (var c in Model){ 
     ViewData["key"]=idx; %> 
     $("#ClientTemplate").tmpl([{FirstName : "<%: c.FirstName %>", 
            LastName : "<%:c.LastName %>" , 
            idx: <%:idx.ToString()  %>}]).appendTo("#ExistingClients"); 
     <% idx++;%> 
    <%} %> 
</script> 
<script type="text/javascript"> 
    function removeClient(DivName) {$("#" + DivName).remove();} 
    var num = <%:Model.Count() %>; 
    $("#btnAddNewClient").click(function() { 
     $("#ClientTemplate").tmpl([{FirstName : "", 
            LastName : "" , 
            idx: num}]).appendTo("#NewClients"); 
     num++; 
    }); 
</script> 

답변

0

이전에 생각했던 방식으로 작동시키지 못했습니다. 내 C# 개체와 동일한 속성 이름을 가진 javascript 개체를 만든 다음 jquery .ajax 호출을 사용하여 컨트롤러 메서드에 개체를 보내는 작업이 끝났습니다.

0

뭔가가 작동하지 않을 수 있습니다 : 특히

나는 코드의 다음 블록의 면도기 구문을 얻을 수 있었으면했다 스크립트 태그는 VS2010의 면도기 파서가 혼란스러워지는 것을 막을 수 있습니다.

관련 문제