gpt4 book ai didi

jquery - 如何从 MVC 中的主视图内部刷新/重新加载部分 View

转载 作者:行者123 更新时间:2023-12-03 22:56:11 24 4
gpt4 key购买 nike

我使用 RenderAction 在主视图(定价 View )内显示部分 View (购物车)

<% Html.RenderAction("Cart", "ShoppingCart"); %>

当用户在主视图上将商品添加到购物车时,我必须更新部分 View 以显示新添加的商品。这是我的部分 View 的代码:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Trl.ViewModels.Cart>" %>
<% foreach (var _hotel in Model.Hotels)
{ %>
Hotel Name: <%: _hotel.Name %> <br/>
Price: <%: _hotel.TotalPrice %>
<% } %>

上面用户控件中使用的“Trl.ViewModels.Cart”对象将包含新添加的项目,因为我使用 ASP.NET session 状态来保留购物车。如何从我的主视图刷新/重新加载此部分 View ,以便它可以显示新添加的项目?

最佳答案

好吧,我已经清楚地知道需要什么了。

我假设主要内容区域是通过 ajax 更新的。如果是这种情况,那么我的方法是通过 ajax 进行更新,并在 Controller 操作中返回包含侧边栏购物车的部分 View 。为此,您需要为包含购物车的 div 指定一个 ID,以便将其定位为更新站点。

言归正传,我的意思是一个快速的代码演示:

Controller :

public ActionResult Create(Cart item)
{
if (ModelState.IsValid)
{
// or could be added to session["cart"] etc..
_repository.Add(item);
var cartItems = _repository.Find(x => x.cartID = item.cartID);
return PartialView("CartMini", cartItems);
}
return new EmptyResult();
}

主视图(在右侧栏中 - 这将是最初定义部分 View 的位置):

<div id="miniCart"></div>

在页面的另一部分(半伪代码):

<script type="text/javascript">
function updateCart() {
var tdata = $(frm).serialize();
// or your data in the format that will be used ??
$.ajax({
type: "POST",
data: tdata,
url : '<%= Url.Action("Create", "Cart") %>',
dataType: "json",
success: function (result) { success(result); }
});
});

function success(result){
$("#miniCart").html(result);
}
</script>

这确实是所需要的基本内容。抱歉,这件事太仓促了,刚开始不久,电话就断了,现在必须走了:)。如果不清楚的话稍后再补充。

关于jquery - 如何从 MVC 中的主视图内部刷新/重新加载部分 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4409881/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com