我有以下情况:
我有一张包含书籍清单的表格。现在,当我点击选定的行时,我想将书名发送给租赁控制器,以便控制器可以调用相应的视图传递书名。
这是表格视图的代码:
<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代码,因为我想保持代码简单。如果我需要证明这一点,请告诉我。