2012-01-21 2 views
2

면도기 구문 및 jQuery에 문제가 있습니다. 일부 항목을 빈 테이블에 추가하려고합니다. 여기에 (내가 여기를 포맷 한)면도기 및 jQuery 테이블 추가

 @{ 
      if (@ViewData["a"] != null) 
      { 
       var tab = @ViewData["a"] as List<string>; 
       foreach(var sp in @tab) 
       { 
        <text> 
         $('#files-table').append(@Html.Raw(@sp)); 
        </text> 
       } 
      } 
     } 

@sp 변수처럼 코드입니다 :

<tr> 
    <td> 
     <a class='some-class' my-type='abc' my-id='1' 
      target='_blank' href='/Home/a'>name123</a> 
    </td> 
    <td> 
     <label class='del' f-id='abc'>lorem</label> 
    </td> 
</tr> 

표는 여전히 비어 있습니다. .append('@Html.Raw(@sp)'), .append(@Html.Raw(sp)) 등 많은 옵션을 시도했지만 성공하지 못했습니다.

+0

결과 HTML은 어떻게 생겼습니까? 또한 실행 중에 JS 오류가 발생합니까? – bzlm

+0

결과는 '' 행이없는 빈 테이블입니다. 그 코드를 사용하여 어떤 에러도 발생하지 않습니다. – Tony

답변

3

@은 HTML과 코드간에 전환 할 때만 사용해야합니다. 그렇지 않으면, 당신은 하나 또는 다른 당신이 그것을 필요로하지 않는 동안. 그렇게 말한다면,이 시도해 : 나는 또한 따옴표로 Html.Raw의 결과를 동봉

@if (ViewData["a"] != null) 
{ 
    var tab = (List<String>)ViewData["a"]; 
    foreach (var sp in tab) 
    { 
    <text> 
     $('#files-table').append('@Html.Raw(sp)'); 
    </text> 
    } 
} 

Screenshot http://img849.imageshack.us/img849/3250/razordemo.png

참고. 랩핑 따옴표를 방해 할 수있는 sp에 따옴표가 없다는 것을 더 안전하게 보호해야 할 수도 있습니다.

데이터를 미리 렌더링하고 렌더링 할 수 있다면 왜 렌더링 할 클라이언트에 전달할 것인가? (오류가 발생하기 쉽고 대기 시간과 종속성을 모두 생성) 직접 렌더링하지 않습니까? 그것은 효율적으로 보이지 않습니다 ...

+0

HTML 코드가 문자열로 취급되지 않기 때문에 인수 목록 뒤에'missing) 오류가 발생합니다. – Tony

+0

@ 토니 : 내 대답 업데이트, 구문 분석 오류가 발생하지 않습니다. 뭔가 다른 것이있을 수 있습니까? Razor는 IDE에서 코드와 HTML이 올바르게 파싱되었음을 보여주는 배경을 제공해야합니다. –

1

왜 컨트롤러에 행을 구축하고 있습니까? 대신을 ViewData를 사용 또한

@if (ViewData["a"] != null) 
{ 
    var list = (List<YourObject>)ViewData["a"]; 
    foreach (YourObject item in list) 
    { 
     <tr> 
     <td> 
      <a class='some-class' my-type='abc' my-id='1' target='_blank' href='/Home/a'>@item.name</a> 
     </td> 
     <td> 
      <label class='del' f-id='abc'>@item.phone</label> 
     </td> 
     </tr> 
    } 

} 

를 볼 수 컨트롤러에서 당신에게 데이터를 전송 고려 : 당신이 테이블에 표시하고이 같은 뷰에서 HTML 테이블을 구축하고자하는 데이터 객체의리스트를 돌려보십시오 커스텀 모델을 사용합니다.