如何获取card_number的值传递给控制器? 每次我提交表单时,表单变量都会为NULL
查看:
@Html.EditorFor(model => model.card_number, new { htmlAttributes = new { @id = "card_number" } })
<script>
var frm = $('#formFilter');
function OnFormSubmit() {
$.ajax({
type: frm.attr('method'),
url: frm.attr('action'),
data: function (frm) {
frm.card_number = $('#card_number').val();
},
success: function (data) {
$("#dataResult").html(data);
$('#dataTable').DataTable({
"dom": 'lifrtp'
});
}
});
}
</script>
控制器:
private List<testtest> GetListChanges(Report changeControl)
{
...logic here....
return returnListhere;
}
答案 0 :(得分:0)
$。ajax方法选项的data
属性应该是代表您的数据的对象或字符串。使用当前代码,您正在为此设置function
。
var d = {
card_number: "1234",
someOtherPropertyNameOfReport: "Hello"
};
$.ajax({
type: frm.attr('method'),
url: frm.attr('action'),
data: JSON.stringify(d),
contentType:"application/json",
success: function (data) {
console.log(data);
}
});
现在,jquery将发送Content-Type
请求标头值设置为application/json
的请求,并且请求正文中的请求数据(JavaScript对象的字符串化版本)和模型绑定程序将能够正确读取并假定视图模型的结构与您的JavaScript对象结构匹配,然后将其映射到您的视图模型。
如评论中所建议,尝试使用serialize()
方法。很简单,您不需要手动构建对象。
您的控制器操作方法也应为public