将数据传递给控制器​​并更改视图

时间:2017-11-27 14:15:50

标签: view asp.net-mvc-5 controller datatables asp.net-ajax

我有以下情况:

我有一张包含书籍清单的表格。现在,当我点击选定的行时,我想将书名发送给租赁控制器,以便控制器可以调用相应的视图传递书名。

这是表格视图的代码:

  <button id="checkoutButton">Checkout</button>


<table id="books" class="table table-bordered table-hover">
        <thead>
            <tr>

                <th>Book</th>
                <th>Category</th>
                <th>Author</th>
                <th>Registration Number</th>
                <th>Volume</th>
                <th>Number In Stock</th>
                <th>Number Available</th>

            </tr>
        </thead>
        <tbody>
        </tbody>
    </table>
}

@section Scripts{ 

<script>

    $(document).ready(function () {

        var titles = [];

        var table = $("#books").DataTable({
            ajax: {
                url: "/api/books",
                dataSrc: ""
            },
            columns: [
                {
                    data: "title"
                },
                {
                    data: "categoryId"
                },
                {
                    data: "registrationNumber"
                },
                {
                    data: "volume"
                },
                {
                    data: "numberInStock"
                },
                {
                    data: "numberAvailable"
                },
                {
                    data: "author"
                }
            ]
        });
   $('#checkoutButton').click(function () {

            var obj = table.rows('.selected').data();

            if (obj.length == 0)
                console.log("No row selected");
            else {

                    for (var i = 0; i < table.rows('.selected').data().length; i++) {
                        console.log(table.rows('.selected').data()[i].title);
                        titles.push(table.rows('.selected').data()[i].title);
                }    

                    $.ajax({
                        url: "/Rental/print",
                        contentType: 'application/json',
                        method: "POST",

                        data: JSON.stringify({ titles })
                    })

            }

        });

这是控制器:

 public ActionResult print(Object [] titles)
        {
            for(var i = 0; i < titles.Length; i++)
            {
                Debug.WriteLine(titles[i]);
            }


            return View("New"); 

        }

我还没有将标题传递给视图,因为视图根本没有呈现。我已经验证控制器确实获取了数据,但它没有导航到&#34; New.html&#34;。虽然,如果我手动导航到此页面,它会进行渲染。所以,我真的不确定我在这里做错了什么。

如果你能指出我正确的方向,我将非常感激。

注意:我没有包含选择多行的js代码,因为我想保持代码简单。如果我需要证明这一点,请告诉我。

0 个答案:

没有答案