【发布时间】:2018-09-10 08:04:51
【问题描述】:
我做错了什么? url 选项正常工作。段落标签给出正确的值(不隐藏时)。
这是我的html代码
@foreach (var item in listTest)
{
<div id="pan" class="form-group panel panel-default">
<p id="TestsId" class="hidden">@item.Id</p>
<text>@item.Name</text>
<text>@item.testTypeCategory.Category</text>
<text>@item.testTypeName.Name</text>
<text>@item.Price</text>
<button class="btn btn-danger btn-cart" type="button" style="float:right">Add</button>
</div>
js代码
$(document).ready(function () {
$('.btn-cart').click(function () {
var myId = $('#TestsId').val();
$.ajax({
type: 'POST',
url: '@Url.Action("AddToList")',
dataType: 'json',
data: { id: myId},
success: function (data) {
var items = '';
$.each(data, function (i, item) {
var rows = "<tr>"
+ "<td class='nameT'>" + item.Name + "</td>"
+ "<td class='priceT'>" + item.Price + "</td>"
+ "</tr>";
$('#testTable tbody').append(rows);
});
},
});
return false;
});
});
和控制器动作
public JsonResult AddToList(int id)
{
cart.Add(_tests.GetAll().FirstOrDefault(j => j.Id == id));
return Json(cart);
}
控制器中的id始终为0
【问题讨论】:
-
var myId = $('#TestsId').val(); => var myId = $('#TestsId').text();
-
成功了!谢谢
-
@PiotrStachaczyński,不,它没有。
var myId = $('#TestsId').text();只会返回带有id="TestsId"的第一个元素 - 您需要使用类名和相对选择器 -
我知道我解决了,但我的问题的答案是正确的
标签: jquery asp.net json ajax asp.net-mvc