【发布时间】:2020-01-21 10:44:15
【问题描述】:
我有一个 JQuery 数组,它需要传递到后端。但是没有通过。这里我已经粘贴了编码部分。
学费DTO
public class TuitionDTO
{
public int TuitionId { get; set; }
public string TuitionTitle { get; set; }
public List<ClassCoverageDTO> ClassCoverage { get; set; }
}
ClassCoverageDTO
public class ClassCoverageDTO
{
public int ClassCoverageId { get; set; }
public int TuitionId { get; set; }
public int DistrictId { get; set; }
public int CityId { get; set; }
public string Place { get; set; }
public DateTime? AddedDate { get; set; }
public string AddedBy { get; set; }
public DateTime? ModifiedDate { get; set; }
public string ModifiedBy { get; set; }
public bool? IsActive { get; set; }
//Display Purpose Only
public string DistrictName { get; set; }
public string CityName { get; set; }
}
将项目添加到 JQuery 数组
function AddClassCoverage(_districtId, _cityId, _place, _districtName, _cityName) {
$('<tr id=' + rowId + '><td id=' + _districtId + '>' + _districtName + '</td><td id=' + _cityId + '>' + _cityName + '</td><td id=' + _place + '>' + _place + '<td id="my">X</td></tr>').appendTo("#responsive-table-example tbody");
var coverage = {
DistrictId: _districtId,
CityId: _cityId,
Place: _place,
DistrictName: _districtName,
CityName: _cityName
};
CoverageItemsArr.push(coverage);
rowId++;
}
HTML 部分
<div class="col-sm-12">
<div class="form-group">
<label>Add Class Coverage<span id="ast">*</span></label>
<table id="responsive-table-example" class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>District</th>
<th>City/Town</th>
<th>Place</th>
<th>Action</th>
</tr>
<tr>
<th>
<select class="form-control" name="district" id="iddistrict"></select>
</th>
<th>
<select class="form-control" name="city" id="idcity"></select>
</th>
<th> <input class="form-control input-sm" type="text" placeholder="" name="place" id="idplace"></th>
<th><button type="button" class="btn btn-primary btn-sm" onclick="addClassCoverage()">Add</button></th>
</tr>
</thead>
<tbody id="coveragetable"></tbody>
</table>
</div>
</div>
追加到 FormData 并传递给后端
//Append to FormData and Send to Backend via AJAX CALL
formData.append("ClassCoverage", CoverageItemsArr)
$.ajax({
url: $("#addTuitionDetails").val(),
cache: false,
type: "POST",
data: formData,
mimeType: 'multipart/form-data',
processData: false,
contentType: false,
cache: false,
success: function (status) {
alert("Success");
}
});
return true;
【问题讨论】:
-
FormData是个什么样的结构?字典?一个东西?如果它是一个对象,我希望看到类似
FormData.ClassCoverage = CoverageItemsArr的东西,或者如果它是一本字典,那么FormData["ClassCoverage"] = CoverageItemsArr -
@Nesaje 这是一个类似
var formData = new FormData();的对象 -
@Nesaje 我试过你提到的上述类型,但仍然失败。
-
请分享Controller的Action方法,该方法应该处理ajax请求。
标签: c# jquery arrays asp.net-mvc