2010-06-01 2 views
0

많은 테이블 관계를 표현하기 위해 MonoRail에서 Checkboxlist를 사용하려고합니다. Special 테이블, SpecialTag 테이블 및 SpecialTag 테이블 사이에있는 Many to Many 매핑 테이블 인 SpecialTagging 테이블이 있습니다. 여기 MonoRail CheckboxList?

은 특별 모델 클래스에서 발췌 한 것입니다 :

[HasAndBelongsToMany(typeof(SpecialTag), 
     Table = "SpecialTagging", ColumnKey = "SpecialId", ColumnRef = "SpecialTagId")] 
     public IList<SpecialTag> Tags { get; set; } 

그리고 내 추가/편집 특수보기 :

$Form.LabelFor("special.Tags", "Tags")<br/> 
    #set($items = $FormHelper.CreateCheckboxList("special.Tags", $specialTags)) 
     #foreach($specialTag in $items) 
      $items.Item("$specialTag.Id") $Form.LabelFor("$specialTag.Id", $specialTag.Name) 
    #end 

checkboxlist가 제대로 렌더링,하지만 난 다음 몇 가지를 선택한 경우 Save를 클릭하면 SpecialTagging 테이블에 특수/태그 연관을 저장하지 않습니다. Save 컨트롤러 액션에 전달 된 엔티티에는 빈 태그 목록이 있습니다. 체크 박스의 이름 및 값 속성은 펑키합니다.

<label for="special_Tags">Tags</label><br> 
        <input id="3" name="special.Tags[0]" value="UCampus.Core.Models.SpecialTag" type="checkbox"> <label for="3">Buy 1 Get 1 Free</label> 
      <input id="1" name="special.Tags[1]" value="UCampus.Core.Models.SpecialTag" type="checkbox"> <label for="1">Free</label> 
      <input id="2" name="special.Tags[2]" value="UCampus.Core.Models.SpecialTag" type="checkbox"> <label for="2">Half Price</label> 
      <input id="5" name="special.Tags[3]" value="UCampus.Core.Models.SpecialTag" type="checkbox"> <label for="5">Live Music</label> 
      <input id="4" name="special.Tags[4]" value="UCampus.Core.Models.SpecialTag" type="checkbox"> <label for="4">Outdoor Seating</label> 

누구나 아이디어가 있으십니까?

감사합니다. 저스틴

답변

0

checkboxlist가 제대로 렌더링

이 날 것으로 보인다 ... 속성 당신은 또한 수 비슷한 것을 렌더링하십시오.

<input type="checkbox" name="special.Tags" value="1"/> 
<input type="checkbox" name="special.Tags" value="2"/> 

이름에 대한 출력 인덱스, 그것은 적절하게 샘플에서

또한 결합 제어 동작 파라미터를 통해 어레이의 모든 체크 박스 UCampus.Core.Models.SpecialTag가 동일한 값을 갖는 사실로 해석되지 않는다 아마 맞지 않을 수도 있습니다, 당신은 태그에서 실제 기본 키 식별자를 출력 할 수 있습니다 (확실하지, 당신이 양식을 처리하는 행동에 바인딩하는 클래스를 표시 할 수 있습니까?)

0

나는 그것이 ID를 지정하여 작업을 얻을 수 있었다 텍스트

$Form.LabelFor("special.Tags", "Tags")<br/> 
    #set($items = $FormHelper.CreateCheckboxList("special.Tags", $specialTags, "%{value='Id', text='Name'}")) 
     #foreach($specialTag in $items) 
      $items.Item("$specialTag.Id") $Form.LabelFor("$specialTag.Id", $specialTag.Name) 
    #end