2017-02-14 8 views
0

レイアウト - >表示 - >パーシャルビューASP.NET MVCでは部分ビューの中でajax.beginformを使用できますか?

ビューで:部分図

 <div class="col-md-8"> 
      @{Html.RenderPartial("_komentari", commentlist);} 
      <div class="gap gap-small"></div> 
      <div class="box bg-gray"> 
       <h3>@Res.commentwrite_title</h3> 
       @using (Ajax.BeginForm("postcomment", new { propertyid = Model.PublicID }, new AjaxOptions { UpdateTargetId = "commentsarea", HttpMethod = "Post", InsertionMode = InsertionMode.Replace }, null)) 
       { 
        <div class="row"> 
         <div class="col-md-8"> 
          <div class="form-group"> 
           <label>@Res.commentwrite_content</label> 
           <textarea id="comment" name="comment" class="form-control" rows="6"></textarea> 
          </div> 
          <div class="form-group"> 
           <input class="btn btn-primary" type="submit" value='@Res.commentwrite_btn' /> 
          </div> 
         </div> 
        </div> 
       } 
      </div> 
     </div> 

<div id="commentsarea"> 
    <ul class="booking-item-reviews list"> 
     @if (Model != null) 
     { 
      foreach (Comment item in Model) 
      { 
       <li> 
        <div class="row"> 
         <div class="col-md-2"> 
          <div class="booking-item-review-person"> 
           <a class="booking-item-review-person-avatar round" href="#"> 
            <img src="/assets/img/70x70.png" alt="Image Alternative text" title="Bubbles" /> 
           </a> 
           <p class="booking-item-review-person-name"> 

            @if (item.UserId != null) 
            { 
             <a href='@Url.Action("details", "user", new { userid = item.User.PublicId })'>@item.User.Username</a> 
            } 
            else 
            { 
             <a href="#">Anonymous</a> 
            } 

           </p> 
          </div> 
         </div> 
         <div class="col-md-10"> 
          <div class="booking-item-review-content"> 
           <p> 
            @item.Content 
           </p> 
           <p class="text-small mt20">@item.DateOnMarket</p> 

           <p class="booking-item-review-rate"> 
@using (Ajax.BeginForm("reportcomment", new { comment = item.PublicId }, new AjaxOptions { UpdateTargetId = "reportscount", HttpMethod = "Post", InsertionMode = InsertionMode.Replace }, null)) 
        { 
            <a id="submit_link" href="#">Spam?</a> 
            <a class="fa fa-thumbs-o-down box-icon-inline round" href="#"></a> 
        } 
    <b id="reportscount" class="text-color">@item.CommentReports.Count</b> 
           </p> 
          </div> 
         </div> 
        </div> 
       </li> 
      } 

     } 
    </ul> 
</div> 

<script> 
    $(function() { 
     $('a#submit_link').click(function() { 
      $(this).closest("form").submit(); 
     }); 
    }); 
</script> 

ビュー

Ajaxのための両方のスクリプトレイアウトには常に含まれています(私は既にAjaxを使っています他のページでも)。 [表示]ページで、新しいコメントを追加すると、データベースに追加され、コメントの更新されたリストがajaxを介して表示されます。すべてうまく動作します。

部分図

しかし、私はスパムとしてコメントを報告したい場合は、私は部分的なビュー(#submit_link)内のリンクをクリックする必要があり、そして報告した後、#reportscount部分の内側に、私がしたいですそのコメントの更新された数を表示します。 actionresultsはContent(numberofreports.toString())のような番号を返します。それは動作しますが、空白のページに番号が表示されますか?

ありがとうございました。

答えて

0

そうでない方が良いです。主な問題は、セキュリティ上の理由から、HTMLがDOMに挿入されると、<script>タグは無視されることです。 Ajax.*ファミリーのヘルパーは<script>タグを挿入して動作するので、AJAXを介して部分を返却すると、それらは存在しません。フォーム自体ではなく、部分的にフォームのHTMLコンテンツのみを含めるとよいでしょう。

+0

ああ、ありがとう!だから、私はレイアウト - ビュー - PartialView - PartialViewを使用する必要がありますか?それは可能ですか? – user5618385

関連する問題