2012-06-22 4 views
2

Details 부분보기 _Tabs과 두 번째 부분보기 _Contents으로 구성된보기가 있습니다.onclick()에 인수로 전달 된 C# 변수가 정의되지 않았습니다.

부분보기 (_Tabs) 중 하나에서 이미지 링크가 있고 onclick 함수에서 변수 CatID이 전달됩니다. 이 변수는 부분 뷰 (TabsForItemViewModel)의 ViewModel 속성 값을 포함합니다.

디버깅 이미지를 클릭하면, VS가 표시

Microsoft JScript runtime error: 'CatID' is undefined

부분도 "_Tabs"부분도 _Tabs위한

보기 모델 TabsForItemViewModel

@model TabsForItemViewModel 
@{ 
    int CatID = Model.CategoryInfo.CatID; 
} 

<ul> 
<li> 
    <a href="#GoToCatLevel"> 
    <img border="0" src="view_cat.png" alt ="Up" title="Go To This Category" 
      width="10" height="10" onclick="LoadCategoryData(CatID, this.href)" /> 
    </a> 
</li> 
... 

"세부 정보"보기 :

@model ItemDetailsViewModel 
@{  
    ViewBag.Title = "Item Details"; 
} 

<div id="Main"> 
... 
    CategoryInfoViewModel categoryData = new CategoryInfoViewModel(itemD.Ca_ID);             

    TabsForItemViewModel tabsForItem = new TabsForItemViewModel(categoryData); 
    <div id="Tabs" class="div-tab">      
     @{Html.RenderPartial("~/Views/Item/_Tabs.cshtml", tabsForItem);} 
    </div> 
    ... 
</div> 

답변

4

CatID은 자바 스크립트 변수가 아닙니다 ... 페이지에 렌더링해야 할 C# 변수입니다. 면도기 구문을 사용하여이 될 것이다 : 당신은 당신이 온 클릭 함수를 보낼 때 CATID 앞에 @ 기호를 넣어 잊어 버린

onclick="LoadCategoryData(@CatID, this.href)" 
3

.

그것은해야한다 :

onclick="LoadCategoryData(@CatID, this.href)" 
+2

스펜서의 답변이 처음 이었기 때문에 귀하의 답변을 수락 할 수 없으며 조금 더 설명이되었습니다. – escist

+1

문제 없습니다. 감사. –

1

먼저 <img>이 속성 href이 없습니다. 클릭 핸들러를 <a>에 추가하려고합니까?

저는 개인적으로 HTML 요소에 자바 스크립트를 혼합하지 말 것을 제안하지 않습니다. 눈에 거슬리는 자바 스크립트를 사용해야합니다. 당신이 뭔가를 시도 할 수

,

<img id=".img" border="0" src="view_cat.png" alt ="Up" title="Go To This Category" 
      width="10" height="10" data-catid="@CatID" /> 

<script type="text/javascript"> 
    $(".img").click(function(){ 
    LoadCategoryData($(this).data("catid"), $(this).attr("src")); 
    }); 
</script> 

는 이제 별도의 파일에이 스크립트를 넣을 수 있습니다.

+0

맞아, 나는 [이 SO 토론] (http://stackoverflow.com/questions/5202619/get-href-attribute-of-enclosing-link-tag)에서 약간의 도움을 받아 이미 문제를 해결했다. 나머지 코드는 정리할 것입니다. – escist

관련 문제