1

新しいMVC v3 Razor Webアプリケーションを作成中ですが、部分ビューから値を読み取る際に問題があるようです。私は他の三つののviewmodels1つのMVCページで複数の部分ビューからユーザー入力値を読み取る

public ProfileVM Profile { get; set; } 
    public SpecsVM Specs { get; set; } 
    public GeneralVM General { get; set; } 
    public Guid Id { get; set; } 

で構成されてViewModelに(タイトルは)私は、@ Html.RenderPartialを使用していたに強くタイトルビューモデルに入力されるページを、持ってい

他のViewModel(プロファイルなど)を別の部分ビューにレンダリングするための構文 これは正しく動作しているように見えますが、データのポスティングを処理するページ上に1つのボタンしか表示しません。ユーザを部分ビューに分割する。 これは可能ですか? ありがとうございます

フォームセクションの要求に従って生成されたHTML。私はマスターページ情報を追加していません

<form action="/Titles/Title/Edit/2bb75b02-9dd7-e011-971f-0003fffb8797" method="post"> 
    <fieldset> 
     <h1> 
      Title Details</h1> 
    <form action="/Titles/Title/Edit/2bb75b02-9dd7-e011-971f-0003fffb8797" method="post"> 
    <fieldset> 
     <p> 
      <input type="submit" value="Save" name="TitleGeneral"/> 
     </p> 
     <hr /> 
     <table> 
      <tr> 
       <td class="editor-label" style="width: 150px;"><label for="TitleCode">Code</label> 
       </td> 
       <td class="editor-label"> 
        <input class="text-box single-line" id="TitleCode" name="TitleCode" type="text" value="T00006" /> <span class="field-validation-valid" data-valmsg-for="TitleCode" data-valmsg-replace="true"></span> 
       </td> 
       <td rowspan="7"> <img src="../../../../Content/demoBF.jpg" width="150px" height="150px" /></td> 
      </tr> 
      <tr> 
       <td class="editor-label"> 
        <label for="TitleName">Title</label> 
       </td> 
       <td class="editor-label"> 
        <input class="text-box single-line" id="TitleName" name="TitleName" type="text" value="Beaches Of France" /> 
        <span class="field-validation-valid" data-valmsg-for="TitleName" data-valmsg-replace="true"></span> 
       </td> 
      </tr> 
      <tr> 
       <td class="editor-label"> 
        <label for="SubTitle">Sub Title</label> 
       </td> 
       <td class="editor-label"><input class="text-box single-line" id="SubTitle" name="SubTitle" type="text" value="" /> 
        <span class="field-validation-valid" data-valmsg-for="SubTitle" data-valmsg-replace="true"></span> 
       </td> 
      </tr> 
      <tr> 
       <td class="editor-label"> 
        <label for="SortingTitle">Sorting Title (If Different)</label> 
       </td> 
       <td class="editor-label"> 
        <input class="text-box single-line" id="SortingTitle" name="SortingTitle" type="text" value="" /> 
        <span class="field-validation-valid" data-valmsg-for="SortingTitle" data-valmsg-replace="true"></span> 
       </td> 
      </tr> 
      <tr> 
       <td class="editor-label"><label for="ShortTitle">Short or abbreviated title</label> 
       </td> 
       <td class="editor-label"><input class="text-box single-line" id="ShortTitle" name="ShortTitle" type="text" value="TRO1" /> 
        <span class="field-validation-valid" data-valmsg-for="ShortTitle" data-valmsg-replace="true"></span> 
       </td> 
      </tr> 
      <tr> 
       <td class="editor-label"><label for="Comments">Comments</label> 
       </td> 
       <td class="editor-label"> 
        <input class="text-box single-line" id="Comments" name="Comments" type="text" value="" /> 
        <span class="field-validation-valid" data-valmsg-for="Comments" data-valmsg-replace="true"></span> 
       </td> 
      </tr> 
      <tr> 
       <td class="editor-label"> 
        <label for="Author">Author</label> 
       </td> 
       <td class="editor-label"> 
        <input class="text-box single-line" id="Author" name="Author" type="text" value="" /> 
        <span class="field-validation-valid" data-valmsg-for="Author" data-valmsg-replace="true"></span> 
       </td> 

     </tr> 
     </table> 
    </fieldset> 
    </form>  <br /> 
     <br /> 
     <ul class="tabs"> 
      <li><a href="#tab1">Profile</a></li> 
      <li><a href="#tab2">Specification</a></li> 
      <li><a href="#tab3">Authors</a></li> 
      <li><a href="#tab4">Editions</a></li> 
      <li><a href="#tab5">Restrictions</a></li> 
      <li><a href="#tab6">Licences</a></li> 
       <li><a href="#tab7">Purchases</a></li> 
       <li><a href="#tab8">Restrictions</a></li> 

     </ul> 
     <div class="tab_container"> 
      <div id="tab1" class="tab_content"> 
       <!--Content--> 

    <form action="/Titles/Title/Edit/2bb75b02-9dd7-e011-971f-0003fffb8797" method="post">   
    <fieldset> 

     <p> 
      <input type="submit" value="Save" name="TitleProfile"/> 
     </p> 


    </fieldset> 
    </form>   </div> 
      <div id="tab2" class="tab_content"> 
       <!--Content--> 

    <form action="/Titles/Title/Edit/2bb75b02-9dd7-e011-971f-0003fffb8797" method="post">   
    <fieldset> 


     <table> 
      <tr> 
       <td class="editor-label" style="width: 150px;"><label for="Pages">Pages</label> 
       </td> 
       <td class="editor-label"><input class="text-box single-line" data-val="true" data-val-number="The field Pages must be a number." id="Pages" name="Pages" type="text" value="96" /> 
        <span class="field-validation-valid" data-valmsg-for="Pages" data-valmsg-replace="true"></span> 
       </td> 
      </tr> 
      <tr> 
       <td class="editor-label"><label for="Plates">Plates or illustrations</label> 
       </td> 
       <td class="editor-label"><input class="text-box single-line" data-val="true" data-val-number="The field Plates or illustrations must be a number." id="Plates" name="Plates" type="text" value="64" /> 
        <span class="field-validation-valid" data-valmsg-for="Plates" data-valmsg-replace="true"></span> 
       </td> 
      </tr> 
      <tr> 
       <td class="editor-label"> 
        <label for="PlateType">Plate Type</label> 
       </td> 
       <td class="editor-label"><input class="text-box single-line" id="PlateType" name="PlateType" type="text" value="Full-colour photographs" /> 
        <span class="field-validation-valid" data-valmsg-for="PlateType" data-valmsg-replace="true"></span> 
       </td> 
      </tr> 
      <tr> 
       <td class="editor-label"> 
        <label for="Format">Format</label> 
       </td> 
       <td class="editor-label"><input class="text-box single-line" id="Format" name="Format" type="text" value="" /> 
        <span class="field-validation-valid" data-valmsg-for="Format" data-valmsg-replace="true"></span> 
       </td> 
      </tr> 
      <tr> 
       <td class="editor-label"> 
        <label for="OtherSpecs">Other specifications</label> 
       </td> 
       <td class="editor-label"> 
        <input class="text-box single-line" id="OtherSpecs" name="OtherSpecs" type="text" value="" /> 
        <span class="field-validation-valid" data-valmsg-for="OtherSpecs" data-valmsg-replace="true"></span> 
       </td> 
      </tr> 
     </table> 

    </fieldset> 
    </form>   </div> 
      <div id="tab3" class="tab_content"> 
       <!--Content--> 

    <form action="/Titles/Title/Edit/2bb75b02-9dd7-e011-971f-0003fffb8797" method="post">   
    <fieldset> 


     <table> 
      <tr> 
       <td class="editor-label" style="width: 150px;"><label for="Pages">Pages</label> 
       </td> 
       <td class="editor-label"><input class="text-box single-line" data-val="true" data-val-number="The field Pages must be a number." id="Pages" name="Pages" type="text" value="96" /> 
        <span class="field-validation-valid" data-valmsg-for="Pages" data-valmsg-replace="true"></span> 
       </td> 
      </tr> 
      <tr> 
       <td class="editor-label"><label for="Plates">Plates or illustrations</label> 
       </td> 
       <td class="editor-label"><input class="text-box single-line" data-val="true" data-val-number="The field Plates or illustrations must be a number." id="Plates" name="Plates" type="text" value="64" /> 
        <span class="field-validation-valid" data-valmsg-for="Plates" data-valmsg-replace="true"></span> 
       </td> 
      </tr> 
      <tr> 
       <td class="editor-label"> 
        <label for="PlateType">Plate Type</label> 
       </td> 
       <td class="editor-label"><input class="text-box single-line" id="PlateType" name="PlateType" type="text" value="Full-colour photographs" /> 
        <span class="field-validation-valid" data-valmsg-for="PlateType" data-valmsg-replace="true"></span> 
       </td> 
      </tr> 
      <tr> 
       <td class="editor-label"> 
        <label for="Format">Format</label> 
       </td> 
       <td class="editor-label"><input class="text-box single-line" id="Format" name="Format" type="text" value="" /> 
        <span class="field-validation-valid" data-valmsg-for="Format" data-valmsg-replace="true"></span> 
       </td> 
      </tr> 
      <tr> 
       <td class="editor-label"> 
        <label for="OtherSpecs">Other specifications</label> 
       </td> 
       <td class="editor-label"> 
        <input class="text-box single-line" id="OtherSpecs" name="OtherSpecs" type="text" value="" /> 
        <span class="field-validation-valid" data-valmsg-for="OtherSpecs" data-valmsg-replace="true"></span> 
       </td> 
      </tr> 
     </table> 

    </fieldset> 
</form>   </div> 
     </div> 
    </fieldset> 
</form><div> 
    <a href="/Titles/Title">Back to List</a> 
</div> 
</td></tr> 

     </table> 
+0

ブラウザでページをレンダリングするときに生成されるHTMLを表示することはできますか?私は特にフォームフィールドの名前に興味があります –

答えて

0

問題は、入力フィールドの名前が正しくないことです。メインの親プロパティ名を示す接頭辞がありません。これは、エディタテンプレートではなく部分文字の使用によるものです。ジミー・ボガードはこれを完全にこのblog postで説明しました。

ので、代わりの:

@Html.Partial("_somePartial", Model.Profile) 

使用:

@Html.EditorFor(x => x.Profile) 

とフレームワークが適切にフィールドに名前を付けるの世話をします。

+0

優れた仕事。これは治療法です! – Ridifer

関連する問題