我有以下代码......
HTML:
<button type="button" class="btn btn-primary" id="filterData"
data-filterString="@Model.LastName">Filter</button>
打字稿:
$("button[id='filterData']").click(() => {
var dataList = [];
var filter = $(this).data("filterString");
$("input[class='personRecord']").each(function() {
dataList.push($(this).val());
});
var parameters = JSON.stringify({ "filterString": filter, "dataList":paymentList });
$.ajax({
url: "/Employee/FilterName",
data: parameters,
type: "POST",
contentType: "application/json; charset=utf-8",
success: function () {
alert("Success");
}
});
});
控制器:
[HttpPost]
public void SendAll(string filterString, List<string> dataList) {
...
}
但是,变量filter
一直返回“未定义”。在这种情况下,如何传递自定义数据项data-filterString
?
答案 0 :(得分:1)
在你的jQuery中,你只能使用data
方法的小写值,即使你的属性是大写/混合大小写。所以你应该写:
var filter = $(this).data("filterstring");
如果你在密钥中使用混合大小写,jQuery会将其转换为虚线变量,因此当你搜索filterString
时,你的属性应该被称为data-filter-string
。
$(function() {
console.log($('#test').data('filterstring'));
console.log($('#test').data('filterString'));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="test" data-filterString="value1" data-filter-string="value2"></div>