![](/img/trans.png)
[英]Asp.net MVC Loading Parent View from the actionlink of PartialView using Ajax not working
[英]Passing data from Action Method returning "PartialView()" into the parent View | using ASP.NET Core MVC and jQuery ajax
这是我名为_ShowSingleProduct.cshtml
的主视图:
<div class="col-md-7">
<!-- Review-->
<div class="product-review pb-4 mb-4 border-bottom">
//*Here I'm going to load my comments*
</div>
<div class="text-center">
<button onclick="showMoreComments()" class="btn btn-outline-accent" type="button"><i class="ci-reload me-2"></i>بیشتر دیدن</button>
</div>
</div>
我将使用ajax
将我的数据(来自用户的一些评论)加载到带有class="product-review"
的<div>
中。
这是我的 Javascript 代码:
$(function() {
ShowComment();
});
function ShowComment() {
$(".product-review").load("/Products/_ShowComments/"+ @Model.ProductId);
};
现在一切正常!
但是我需要使用 ajax 每次点击<button>
来更新我的评论
<button onclick="showMoreComments()" class="btn btn-outline-accent" type="button">
<i class="ci-reload me-2"></i>بیشتر دیدن</button>
这是返回局部视图的目标操作方法:
public IActionResult _ShowComments(int id, int take = 2, int pageId = 1)
{
ViewBag.CurrnetPageId= pageId + 1;
var comments = _productService.GetAllCommentsByProductId(id, take, pageId);
return PartialView(comments);
}
我的问题是如何将ViewBag.Cur.netPageId
的值带到我的父视图 (_ShowSingleProduct.cshtml),因为每次我需要它时,它都会返回null
; 我尝试了以下方式:
@{
var currentPage=ViewBag.CurrnetPageId;
}
<script>
function showMoreComments() {
var currentPageId =@currentPage;
$(".product-review").load("/Products/_ShowComments?id=" + @Model.ProductId+"&pageId=" + currentPageId);
};
<script>
但仍将currentPageId
变量视为null
!
谁能帮我?
子动作遵循与父动作不同的控制器/模型/视图生命周期。 因此,它们不共享 ViewData/ViewBag。
你可以试试这个方法。
public IActionResult _ShowComments(int id, int take = 2, int pageId = 1)
{
ViewBag.CurrnetPageId= pageId + 1;
var comments = _productService.GetAllCommentsByProductId(id, take, pageId);
return PartialView(comments);
}
在您的局部视图 ( Products/_ShowComments
) 中,使用@ViewBag.Cur.netPageId
接收数据
//........
// add this code to save the data
<input id="currentPageId" value=@ViewBag.CurrnetPageId type="hidden"/>
//......
最后,在父视图中加载局部视图时,使用$("#currentPageId").val()
获取@ViewBag.Cur.netPageId
的值
<script>
function showMoreComments() {
$(".product-review").load("/Products/_ShowComments?id=" + @Model.ProductId +"&pageId=" + $("#currentPageId").val());
}
<script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.