2016-06-01 6 views
0

내가이 필요합니다는 HtmlBeginCollectionItem 가져 오기 현재 항목

  1. ACESS/클라이언트/때
  2. 각 부분보기에서
  3. 를 동적 부분 뷰를 추가 (/ 제품/카드)와 Client.Products에 바인딩 만들기 버튼을 클릭하면 제품 정보를 설정할 수있는 부트 스트랩 모달 창이 열립니다.
  4. 모달을 닫고 모달 제품의 모달 반영 반영을 반영합니다.

문제는 : 카드 이외의 다른보기에서 제품 정보를 변경하고 카드 제품에 반영하는 방법입니다.

@using (Html.BeginCollectionItem("Products")) 
{ 
    @Html.HiddenFor(model => model.ClientID) 
    @Html.HiddenFor(model => model.ProductID) 


    <div class="card"> 
     <img class="card-img-top" src="http://macbook.nl/wp-content/themes/macbook/images/png/iphone318x180.png" alt="Grupo Logo"> 
     <div class="card-block"> 
      <h4 class="card-title">@Model.Name</h4> 
      <p class="card-text">@Model.Desc</p> 
      <div class="btn-group"> 
       <button type ="button" class="btn btn-primary open-modal" data-path="/Product/Edit/@Model.ProductID">Edit</button> 
       <button type="button" class="btn btn-primary open-modal" data-path="/Product/Features/@Model.ProductID">Features</button> 
      </div> 
     </div> 
    </div> 

} 

enter image description here

+0

어떤 문제가 있습니까? 'data-path' 속성의 결과는 무엇입니까? –

+0

이보기에서 모델이 EF에 의해 저장되지 않으므로/Product/Edit/0이므로 편집 방법에 개체 제품을 전달해야합니까? – Rieth

+0

여기에 당신이 무엇을하려고하는지 약간 불분명합니다. 'BeginCollectionItem()'은 콜렉션의 항목을 편집하고 (동적으로 추가하고 삭제할 수있는), 왜 다른 페이지로 이동하여 편집하려면 링크가 있어야합니까? (현재 페이지에서 편집하십시오)? 그리고 다른 페이지로 이동하여 아직 존재하지 않는 기능의 기능을 편집하거나 볼 수는 있습니다. –

답변

0

당신은이 작업을 수행 할 수있는 동적 모달로 다른보기를로드. 객체가 아직 생성되지 않은하여, 당신은 다른 어떤 새로운 아이템을 생성하는 BeginCollectionItem()를 사용하기 때문에 다른보기 (또는 사용 된보기는 해당 도우미가 만든 동일한 Guid을 사용하지 않으므로 컬렉션 항목을 일치시킬 수 없습니다.

대신 부분에 '기타'속성을 포함 시키지만 숨겨진 요소에 넣으십시오 엉덩이를 클릭하면 모달로 표시됩니다. ons.

추가 부분의 기본 구조/제품 편집

<div class="product"> 
    @using (Html.BeginCollectionItem("Products")) 
    { 
     @Html.HiddenFor(m => m.ClientID) 
     @Html.HiddenFor(m => m.ProductID) 
     <div class="card"> 
      .... 
      <button type ="button" class="btn btn-primary edit">Edit</button> 
     </div> 
     // Modal for editing additional data 
     <div class="modal"> 
      @Html.TxtBoxFor(m => m.SomeProperty) 
      @Html.TxtBoxFor(m => m.AnotherProperty) 
      .... 
     </div> 
    } 
</div> 

하고 그 버튼을 .click() 이벤트 관련 표시하도록합니다 (파셜 동적 뷰에 추가되기 때문에 위임 사용)을 처리 할 모달 (모든 제품의 컨테이너 인 <div id="products"> 요소가 있다고 가정)