如何将数据从视图传递到控制器?

时间:2016-03-04 07:55:24

标签: jquery ajax asp.net-mvc controller

我刚开始使用简单的网络商店应用程序处理MVC。我用.Split方法分离了数据列类型的NVARCHAR。我已将这些分隔的数据放在可选择的jquery元素

中,如下所示:

<script type="text/javascript">
    $(document).ready(function () {
        $("#selectable").selectable({
            stop: function () {
                var result = $("#select-result").empty();
                $(".ui-selected", this).each(function () {
                    var index = $("#selectable li").index(this);
                    result.append(" #" + (index + 1));
                });
            }
        });
    });
<p>
                                    <b>Available Sizes</b>
                                    @{
                                        var Availablesize = Model.AvailableSizes.Split(',');

                                    }
                                    @foreach (var item in Availablesize)
                                    {
                                        <ol id="selectable">
                                            <li class="ui-widget-content"><span>@item//</span></li>
                                        </ol>
                                    }
                                </p>

现在我希望实现一项功能,当用户选择其中一个分隔的项目并按下按钮添加到购物车时,该

元素的值应该传递给以下控制器:

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 });
        }

有什么想法吗?请帮助我。

1 个答案:

答案 0 :(得分:0)

您可以使用AJAX:

    $.ajax({
       url: '@Url.Action("AddToCart")',
       type: 'POST',
       data: allData  ,
       success: function(result) {
        // process the results from the controller
      }
   });
  

其中allData = {Cart:Cartdetails,productId:1,returnUrl:returnUrl};