布局 - >查看 - >部分视图
在视图中
<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返回该内容(numberofreports.toString())之类的数字。它有效,但我在空白页中得到了数字?
非常感谢。
答案 0 :(得分:0)
如果你不这样做会更好。主要问题是,出于安全原因,当HTML插入DOM时,<script>
标记会被忽略。由于Ajax.*
系列助手通过插入<script>
标签来工作,当您通过AJAX返回部分时,这些不会出现。如果您只在部分中包含表单的HTML内容,而不是表单本身,则会更好。