2013-01-07 36 views
-1

我正在研究blogpost嵌套評論。我們可以在單視圖剃鬚刀中使用多個html.begin嗎?

我已經習慣了html.beginform,其中一個用於添加新評論,另一個用於回覆。

筆者認爲:

 <fieldset class="new-comment"> 
      <legend class="title">@T("Blog.Comments.LeaveYourComment")</legend> 
      @using (Html.BeginForm()) 
      { 
       <div id="newcomment"> 
        <div class="message-error">@Html.ValidationSummary(true)</div> 
        @{ 
       string result = TempData["nop.blog.addcomment.result"] as string; 
        } 
        @if (!String.IsNullOrEmpty(result)) 
        { 
         <div class="result">@result</div> 
        } 
        <div class="forms-box"> 
         <div class="inputs"> 
          @Html.LabelFor(model => model.AddNewComment.CommentText) 
          <div class="input-box"> 
           @Html.TextAreaFor(model => model.AddNewComment.CommentText, new { @class = "comment-text" }) 
          </div> 
          @Html.ValidationMessageFor(model => model.AddNewComment.CommentText) 
         </div> 
         @if (Model.AddNewComment.DisplayCaptcha) 
         { 
          <div class="captcha-box"> 
           @Html.Raw(Html.GenerateCaptcha()) 
          </div> 
          <div class="clear"> 
          </div> 
         } 
        </div> 
        <div class="clear"> 
        </div> 
        <div class="buttons"> 
         <input type="submit" name="add-comment" class="button-1 blog-post-add-comment-button" value="@T("Blog.Comments.SubmitButton")" /> 
        </div> 
       </div> 


      } 
     </fieldset> 

回覆:

 <div class="container"> 

       @{//to set div id in comment list 
      var Count = 0; 
      var CommentParentID = 0;  } 
       @using (Html.BeginForm()) 
       { 


        foreach (var commentlist in Model.Comments.Where(x => x.CommentParentID == 0)) 
        { 

        <div class="nested-comments"> 



         <div> 
          @if (commentlist.AllowViewingProfiles) 
          { 
           <a href="@Url.RouteUrl("CustomerProfile", new { id = commentlist.CustomerId })" class="username">@(commentlist.CustomerName)</a> 
          } 
          else 
          { 
           <span class="username">@(commentlist.CustomerName)</span> 
          } 
          <div class="avatar"> 
           @if (!String.IsNullOrEmpty(commentlist.CustomerAvatarUrl)) 
           { 
            <img src="@(commentlist.CustomerAvatarUrl)" class="avatar-img" title="avatar" alt="avatar" /> 
           } 
          </div> 


          <div class="comment-content"> 
           <div class="comment-time"> 
            @T("Blog.Comments.CreatedOn"): <span class="stat-value">@commentlist.CreatedOn.ToString("g")</span> 

             <div> 
              <div id="[email protected]" style="display: none;"> 
               @{CommentParentID = commentlist.Id; 
                Model.AddNewComment.CommentParentID = CommentParentID;} 

               <div> 

                <div class="message-error">@Html.ValidationSummary(true)</div> 
               @{ 
               string strresult = TempData["nop.blog.addcomment.result"] as string;         
               } 
               @if (!String.IsNullOrEmpty(strresult)) 
               { 
                <div class="result">@strresult</div> 
               } 
                <div> 
                 <div id="[email protected]"> 
                  @Html.HiddenFor(modelComment => modelComment.AddNewComment.CommentParentID) 
                  @Html.Label("Reply Comment") 
                  <div> 
                   @Html.TextAreaFor(modelComment => modelComment.AddNewComment.ChildCommentText) 
                  </div> 
                  @Html.ValidationMessageFor(modelComment => modelComment.AddNewComment.ChildCommentText,"Please Enter Reply") 
                 </div> 

                 @if (Model.AddNewComment.DisplayCaptcha) 
                 { 
                  <div class="captcha-box"> 
                   @Html.Raw(Html.GenerateCaptcha()) 
                  </div> 
                  <div class="clear"> 
                  </div> 
                 } 
                </div> 
                <div class="clear"> 
                </div> 
                <div class="buttons"> 
                 <input type="submit" name="reply-comment" value="@T("Blog.Comments.ReplyButton")" /> 
                </div> 
               </div> 
               <div class="clear"> 
               </div> 



              </div> 

              <input type="button" id="reply" class="reply-link" onclick="return showHide('[email protected]');" value="Reply" /> 
              @{Count++; } 
             </div> 

           </div> 
           <div class="comment-body"> 
            @Html.Raw(Nop.Core.Html.HtmlHelper.FormatText(commentlist.CommentText, false, true, false, false, false, false)) 
           </div> 
          </div> 


          <div class="clear"> 
          </div> 


          @foreach (var cmt in Model.Comments.Where(x => x.CommentParentID == commentlist.Id)) 
          { 
           <div class="comment"> 
            <div> 
             <div class="user-info"> 
              @if (cmt.AllowViewingProfiles) 
              { 
               <a href="@Url.RouteUrl("CustomerProfile", new { id = cmt.CustomerId })" class="username">@(cmt.CustomerName)</a> 
              } 
              else 
              { 
               <span class="username">@(cmt.CustomerName)</span> 
              } 
              <div class="avatar"> 
               @if (!String.IsNullOrEmpty(cmt.CustomerAvatarUrl)) 
               { 
                <img src="@(cmt.CustomerAvatarUrl)" class="avatar-img" title="avatar" alt="avatar" /> 
               } 
              </div> 
             </div> 
            </div> 
            <div class="comment-content"> 
             <div class="comment-time"> 
              @T("Blog.Comments.CreatedOn"): <span class="stat-value">@cmt.CreatedOn.ToString("g")</span> 
             </div> 
             <div class="comment-body"> 
              @Html.Raw(Nop.Core.Html.HtmlHelper.FormatText(cmt.CommentText, false, true, false, false, false, false)) 
             </div> 
            </div> 

           </div> 
          } 
          @Html.Widget("blogpost_page_inside_comment") 

         </div> 
        </div> 

        } 

       } 

      </div> 

當我回覆按鈕點擊我不能夠得到的參數值 modelComment => modelComment.AddNewComment.ChildCommentText

+1

您可以使用多個html.beginform()。它只生成一個

標籤。當然,你不能有嵌套的表單標籤。 – Anonymous

+0

@匿名:上面的代碼是否正確? –

+0

@NetraWable你能看到任何錯誤 –

回答

0

是的,只要一個不嵌套在另一箇中,您可以在一個頁面上擁有多個表單。

調試時會發生什麼?它是否轉到正確的操作並且不傳遞任何值?

+0

:它去糾正行動我沒有得到任何錯誤,但我對提交答覆的期望值爲null。 –

相關問題