如何获取逗号delimated(拆分)字符串值并将其传递给控制器

How do i get comma delimated (split) string value and pass it to a controller?

本文关键字:控制器 拆分 获取 何获取 delimated 字符串      更新时间:2023-09-26

我有一个名为"产品"的SQL表,在该表中,我有一个名为AvailableSizes NVARCHAR类型的字段,其中包含产品的所有可用尺寸。然后,我将AvailableSizes字段的值分开,如下所示:

<p>
    <b>Available Sizes</b>
    @{
        var Availablesize = Model.AvailableSizes.Split(',');
    }
    @foreach (var item in Availablesize)
    {
        <div class="circleBase type2">@item</div>
    }
</p>

正如您在上面的代码中看到的那样,我将这些数据值放在侧圆中,现在我希望如果有人单击其中一个包含数据在其中的圆圈,则应选择该值,然后如果用户单击 AddToCart 按钮,则应将其传递给我的控制器操作如下:

public RedirectToRouteResult AddToCart(Cart cart, int productId, string returnUrl)
{
    Product product = repository.Products.FirstOrDefault(p => p.ProductID == productId);
    if (product != null)
    {
        cart.AddItem(product, 1);
    }
    return RedirectToAction("Index", new { returnUrl });
 }

这是"添加到购物车"按钮背后的代码:

@using (Html.BeginForm("AddToCart", "Cart", new { ProductID = item.ProductID}))
{
    @Html.Hidden("returnUrl", Request.Url.PathAndQuery)
    <input type="submit" class="btn btn-default add-to-cart" value="Add to cart" />
}

就我刚接触MVC而言,我需要一个明确的解决方案,提前感谢。

最适合您的方法是使用另一个隐藏的帮助程序来选择大小,并通过在 Jquery 中单击所选Availablesize的事件来填充该帮助程序。然后,您可以将其传递给控制器AddToCart操作。

当用户选择圆圈时,您可以添加类,然后当用户使用 jquery 单击添加购物车按钮时,首先获取选定的圆值并将数据传递给操作方法中的控制器。

下面是理解逻辑的示例代码

$(document).ready(function(){
      $('.circleBase ').click(function(){
        $(this).addClass('abc');
    })
    $('.btn').click(function(){
        var result = $('.abc').val();
    //
    and call your controller
    });
});

类"ABC"是突出显示所选项目的类。