2013-02-19 63 views
1

我有一個呈現兩個部分視圖的主視圖。主視圖包含表單中的兩個部分視圖。每個部分視圖還包含表單。所有3個視圖共享相同的視圖模型。我想要做的是用主視圖封裝所有視圖中的數據,並使用局部視圖運行特定的控制器操作結果。Html.BeginForm中的Html.BeginForm MVC3

我想知道這是否可能。調試時,我發現我的內容總是發佈到主視圖窗體的HTTPPost。我相應地爲每個表單提交按鈕。對於代碼發佈感到抱歉,它出現了所有分裂。

主視圖:

@using (Html.BeginForm("Main", "Registration", FormMethod.Post, 
    new { @class="mainform" })) 
{ 
    <form> 
     <fieldset> 
      <div id ="option1" class="conglomerate"> 
       @Html.Partial("_GetBusiness") 
      </div> 
      <div id ="option2" class="dealership"> 
       @Html.Partial("_GetLocation") 
      </div> 
      <button type="submit" value="Create" class="buttonBlue" id=""> 
       <span>Create a new dealer</span> 
      </button> 
     </fieldset> 
    </form> 

部分1

@using (Html.BeginForm("CreateBusiness", "Business", FormMethod.Post, 
     new { @class="buisinessform" })) 
{ 
    <form> 
     <div class="editor-field"> 
      @Html.DropDownListFor(m =>m.BusinessId, new SelectList(Model.Businesses, 
       "BusinessId", "BusinessName"), "") 
     </div> 
     <label>Your company not listed? Register yours below:</label> 
     <div class="editor-label"> 
      @Html.LabelFor(model => model.BusinessName) 
     </div> 
     <div class="editor-field"> 
      @Html.EditorFor(model => model.BusinessName) 
      @Html.ValidationMessageFor(model => model.BusinessName) 
     </div> 
     <button type="Button" value="" class="buttonBlue"id="TestSubmit"> 
      <span>Add Dealer</span> 
     </button> 
     <div class ="confirm"> 
      <button type="submit" value="Create" class="buttonBlue" id=""> 
       <span>Click here to confirm dealer addition</span> 
      </button> 
     </div> 
    </form> 
} 

回答

7

戴維提到,這是不合法的HTML嵌套形式。這不僅僅是HTML5,而是任何版本的HTML。

可能在某些瀏覽器中工作,在某些情況下,但它永遠不會有效。即使它看起來有效,你也永遠無法依靠即將發生的事情。您的最佳行動方案是在頁面上使用多個非嵌套表單。

你能解釋爲什麼你認爲你需要嵌套表單嗎?

+0

阿門。也許是一個很好的附加問題,這些部分可以封裝窗體而不是嵌套窗體嗎? – 2013-02-20 02:26:16

+0

謝謝你們,我不太瞭解這個概念。是的,這些都是我需要的另一種方式。哪個是將從兩個部分視圖獲得的ID值傳遞迴視圖模型。 – WiseGuy 2013-02-20 02:42:59

+1

@BenjaminRandal - 您可以通過簡單地將所有數據作爲單個帖子發佈到一起來實現。 – 2013-02-20 03:26:31

5

不,你不能嵌套形式。抱歉。

HTML5 guidelines

「流內容,但沒有表單元素後裔」

+0

感謝您的鏈接人。 – WiseGuy 2013-03-18 19:53:11