我有一个网站,我正在工作,用户可以添加或删除一个有轨电车网络的预定流量。我已经带着删除按钮走了这么远。
<input type="button" value="Delete" class="deleteTraffic btn btn-link NoBorder NoBackGround" data-id="@traffic.Id" />jQuery(document).ready(function() {
jQuery('.deleteTraffic').click(function() {
var id = $(this).data('id');
var url = '@Url.Action("DeleteTraffic", "TrafficDate", new { trafficId=id })';
url = url.replace("id", id);
$.post(url, function (data) {
if (data) {
$('#pnlEditTraffics').hide().fadeIn('fast');
} else {
alert("Error.");
}
});
});
});public ActionResult DeleteTraffic(int id)
{
return Json(TrafficData.DeleteTraffic(id));
}该按钮工作良好,参数通过良好,但控制器中的操作永远无法达到。控制器名为TrafficDateController
发布于 2016-07-04 14:14:05
第一个问题是将参数传递给Url.Action()的顺序,动作名是第一个参数,而第二个是控制器名:
@Url.Action("DeleteTraffic", "TrafficDate")此外,由于DeleteTraffic操作是要使用POST谓词调用的,所以最好将id作为请求体的一部分传递,从而避免使用url.replace('id', id)手动构造最终路径。
var url = '@Url.Action("DeleteTraffic", "TrafficDate")',
data = { id: id };
$.post(url, data, function (data) {
// ...
});请参阅MSDN
https://stackoverflow.com/questions/38186627
复制相似问题