ASP.NETMVC购物车和jQuery

ASP.NETMVC购物车和jQuery,asp.net,asp.net-mvc-2,jquery,Asp.net,Asp.net Mvc 2,Jquery,我有一个定价页面,其中显示产品列表及其价格。用户可以选择将多个产品添加到购物车页面右侧显示活动购物车。目前,这就是我使用Ajax/Jquery实现它的方式 my view ASPX中的代码片段:通过ViewModel中的可用产品循环并显示详细信息: <% foreach (var _product in _supplier.HotelProducts) { %> <tr> <td colspan="2" align="left" va

我有一个定价页面,其中显示产品列表及其价格。用户可以选择将多个产品添加到购物车页面右侧显示活动购物车。目前,这就是我使用Ajax/Jquery实现它的方式

my view ASPX中的代码片段:通过ViewModel中的可用产品循环并显示详细信息:

<% foreach (var _product in _supplier.HotelProducts)
    { %>
    <tr>
        <td colspan="2" align="left" valign="top"><% = _product.Description %></td>
        <td  align="left">
            <% using (Html.BeginForm("AddToCart", "ShoppingCart", FormMethod.Post, new { @class = "addProductToCartForm" }))
                { %>
                <input type="hidden" name="hSupplierID" id="hSupplierID" value="<% = _supplier.ID %>" />
                <input type="hidden" name="hProductCode" id="hProductCode" value="<% = _product.Code %>" />
                <input type="hidden" name="hProductDescription" id="hProductDescription" value="<% = _product.Description %>" />
                <input type="hidden" name="hProductPrice" id="hProductPrice" value="<% = _product.TotalPrice %>" />
                <input type="submit" value="+ Add to cart" />
            <% } %>
        </td>
        <td valign="top" align="center">
            <span id="spanProductPrice" class="_price">$<% = _product.TotalPrice %></span>
        </td>
    </tr>
<% } %>    
这是我的自定义HiddenCartForm对象,我使用它通过JQuery将信息从视图传递到控制器

public class HiddenCartForm
    {
        public string SupplierID { get; set; }
        public string Code { get; set; }
        public string Description { get; set; }
        public decimal? TotalPrice { get; set; }
        //public ProductView Product { get; set; }
    }
我有两个问题:

[1] 有没有更好的方法来处理这种情况?我对在视图中保存SupplierID和产品详细信息的这么多表单和隐藏字段感到有点不舒服。当有人查看源代码时,这些表单和隐藏字段将可见

[2] 当用户将特定产品添加到购物车时,我需要几乎所有来自产品的信息。有没有更好的方法通过JQuery传递此信息,而不是使用隐藏字段,因为在我看来,我正在通过products foreach var\u product in\u supplier.HotelProducts进行循环


我目前在MVC 2上。

为什么您需要在表单帖子中传递产品说明和价格?处理AJAX post的控制器操作不能从数据库中查找这些值吗?根据模型的定义方式,供应商ID也可能会因为类似的原因被删除。

Kevin,我通过调用外部Web服务获取产品及其定价列表,并且这些信息不会保存在本地数据库中……因此我无法在服务器端传递产品代码并检索相应的描述和价格,这就是为什么我需要在用户将产品添加到购物车时捕获所需的产品详细信息。我还需要为供应商显示更多信息,但由于我在本地数据库中有供应商数据,我只需传递SupplierID并在控制器中查找其他信息,但我不能对产品执行相同的操作:您可以在调用外部web服务时将产品及其定价数据保存到本地数据库,并在几分钟后将其删除一段时间。将其存储在隐藏字段中的问题是,用户更改数据(例如,将价格更改为0美元,从而免费获得他们的物品)非常简单。谢谢Kevin,我正在考虑这些问题。
public class HiddenCartForm
    {
        public string SupplierID { get; set; }
        public string Code { get; set; }
        public string Description { get; set; }
        public decimal? TotalPrice { get; set; }
        //public ProductView Product { get; set; }
    }