将 "data-" 传递给控制器
Passing "data-" to controller
我有以下代码...
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
一直返回 "undefined"。您如何传递自定义数据项,data-filterString
在这种情况下?
在您的 jQuery 中,即使您的属性是 upper/mixed 大小写,您也只能为 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>
我有以下代码...
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
一直返回 "undefined"。您如何传递自定义数据项,data-filterString
在这种情况下?
在您的 jQuery 中,即使您的属性是 upper/mixed 大小写,您也只能为 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>