2016-06-01 17 views
0

私が必要:はHtmlBeginCollectionItem取得、現在の項目

  1. アセス/クライアント/動的部分図(/製品/カード)を追加したとき、私の各部分図Client.Products
  2. にバインドし
  3. を作成します。ボタンをクリックすると、ブートストラップモーダルウィンドウが開きます。製品の情報を設定できます。
  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">要素があることを前提とします)

$('#products').on('click', '.edit', function() { 
    var modal = $(this).closest('.product').find('.modal'); 
    modal.show(); // display the modal 
}); 
関連する問題