如何使用ajax方法将值从View传递给Controller?

时间:2014-03-15 12:41:23

标签: asp.net-mvc asp.net-mvc-3

我正在开发MVC应用程序。

我想将列表中的值传递给控制器​​,

以下代码是显示产品列表......它显示完美。

@using (Html.BeginForm("Create", "Order", FormMethod.Post, new { enctype = "multipart/form-data", id = "frmCreate" }))
{
    @Html.ValidationSummary(true)   
    <div class="row-fluid">   
        <table class="table table-striped table-hover">
            <thead>
                <tr>
                    <th>Section Name</th>
                    <th>Quantity</th>
                </tr>
            </thead>
            <tbody>
                @foreach (var item in ViewBag.ProductList)
                {
                    <tr>
                        <td >@item.SectionName</td>
                        <td >@item.Quantity</td>
                    </tr>
                }
            </tbody>
        </table>
        <span class="span12 alert alert-success" id="status-message" style="margin-bottom:10px;"><strong>Your Order has been sent to HO  sucessfully.</strong><a href="#" id="CheckOrder" onclick="submitForm()" style="font-size:14px;text-decoration:none;margin-right:10px;">Clcik Here </a> to check status. Please click on back button to view list.</span>
    }

现在,当我点击上面的链接时,我想将数据传递给控制器​​中的方法。

我编写了下面的代码,它调用了控制器的方法,但列表中没有包含任何项目。它显示空值。如何使用ajax传递列表?

代码有什么问题?

<script type="text/javascript">
     $(document).ready(function () {
         $('#CheckOrder').click(function(){ 
             $.ajax({
                 url: '@Url.Action("DATACoME")' + '?List=@ViewBag.ProductList'
             }).done(function(){
                 //do something
             });
         });
</script>

1 个答案:

答案 0 :(得分:0)

试试这个:

<script type="text/javascript">

 $(document).ready(function () {


     $('#CheckOrder').click(function(){ 
         $.ajax({
             url: '@Url.Action("DATACoME")',
             data: {parameterNameFromTheController: '@ViewBag.ProductList'}
         }).done(function(){
             //do something
         });

     });

</script>