2009-12-16 3 views
0

나는 mvc 및 jquery를 처음 사용했습니다. ViewData [ "a"] = "true"; jquery에서 viewdata 객체에 액세스하려고합니다. < % if (ViewData [ "a"] == "true") %> { $ ('# div1'). } 위의 jquery가 작동하지 않습니다. 누군가가이 문제를 해결할 수 있습니까? 미리 감사드립니다.컨트롤러 뷰 데이터 개체를 jquery로

답변

3
<script type="text/javascript"> 
    var ViewData_a = "<%= ViewData["a"] %>"; 
</script> 

... 

<script type="text/javascript"> 
    $(document).ready(function() { 
     if(ViewData_a) { 
      $('#div1').show(); 
     } 
</script> 
0

이 방식으로 ViewData에 액세스 할 수 없습니다. 값을 숨겨진 필드에 넣은 다음 그 값을 확인하는 것과 같은 작업을 수행해야합니다.

if ($('.HdnFieldClassName').val() == "true") 
{ 
    $('#div1').show(); 
} 

또는 이와 비슷한 것입니다.

확실하면

if ('<%= ViewData["a"] %>' == "true" 

처럼 뭔가를 할 수 있는지 여부를 나는 다른 사람에 대해 알고하지 않습니다하지만 난 jQuery를에 컨트롤 이름을 사용하는 거대한 팬이 아니에요. 나는 컨트롤을 잡기 위해 클래스 이름을 사용하는 것을 선호한다.

<input type='text' class="jQueryMyTextBox" id='MyTextBox'> 

$('.jQueryMyTextBox').val() 

그냥 컨트롤의 이름이 코드가 여전히 작동 변경하고 있다면 당신은 지금 당신이 그것에있는 동안

0

것은 JSTL 사용을 고려 등 형태의 코드를 공유 할 수 있음을 의미/EL을 스크립틀릿 대신 사용하십시오.

그래서 ...

<%= ViewData["a"] %> 

이된다 ...

<c:out value="${ViewData.a}"/> 

JSTL/EL은 종종 무료로 당신에게 몇 가지를 제공합니다. 이 예제에서와 같이 ViewData [ "a"]의 값은 자동으로 엔티티 인코딩됩니다.