我有一個簡單的觀點,即顯示數據的表格,我要排序的列時,其中一個報頭由AJAX點擊,我是新來的AJAX和JS,所以這是我的觀點嘗試:如何從javascript函數發送參數給Action?
<table id="tbl" class="table">
<tr>
<th>
<a style="cursor: pointer" onclick="getData('desc')" id="sort">Title</a>
</th>
<th>
Author
</th>
<th></th>
</tr>
</table>
@section scripts{
<script type="text/javascript">
$(document).ready(getData('asc'))
function getData(sort) {
var srt = sort;
$.ajax({
type: 'GET',
url: '/Book/BooksData/' + srt,
dataTtype: 'json',
success: function (data) {
$("#tbl > tr").remove();
$.each(data, function (index, val) {
$('#tbl').append('<tr><td>' + val.Title + '</td><td>' + val.Author.Name + '</td></tr>')
});
}
});
}
</script>
}
但是當我點擊標題中的sort
參數會動作空,
public JsonResult BooksData(string sort)
{
var books = new List<Book>();
if (sort == "asc") books = db.Books.Include(b => b.Author).OrderBy(b => b.Title).ToList();
else books = db.Books.Include(b => b.Author).OrderByDescending(b => b.Title).ToList();
return Json(books, JsonRequestBehavior.AllowGet);
}
是我做錯了,但我修改了很多次,我看不出除了邏輯錯誤在JavaScript中傳遞參數不同於C#
除非你爲''Book/BooksData/{sort}'定義了一個指定路由,那麼你需要將該值作爲查詢字符串值添加,而不是路由值 –
是的,我忘記了:( –