Asp.net mvc 通过JQuery UI对话框向服务器提交表单数据时出现问题
我有一个asp.NETMVC应用程序,使用jQueryUI对话框。我正在尝试将表单数据提交给ControllerAction方法。我确实点击了动作方法,但我的对象没有数据。你知道为什么吗 来自Filter.cshtmlAsp.net mvc 通过JQuery UI对话框向服务器提交表单数据时出现问题,asp.net-mvc,jquery-ui,Asp.net Mvc,Jquery Ui,我有一个asp.NETMVC应用程序,使用jQueryUI对话框。我正在尝试将表单数据提交给ControllerAction方法。我确实点击了动作方法,但我的对象没有数据。你知道为什么吗 来自Filter.cshtml $("#selectUnits").dialog({ autoOpen: false, title: 'Select Units', width: 400, modal: true, minHeigh
$("#selectUnits").dialog({
autoOpen: false,
title: 'Select Units',
width: 400,
modal: true,
minHeight: 200,
buttons: {
"Cancel": function () {
$(this).dialog("close");
},
"Submit": function () {
$.post('/Data/SetUnitNumbers', $("#frmSelectedUnits").submit(), function (data) {
alert('This worked');
});
}
} // END OF BUTTONS
}); //END OF DIALOG
来自控制器…操作方法:
public void SetUnitNumbers(object data)
{
int a = 5;
}
<body>
<form id="frmSelectedUnits" action="/" >
<div id="unitNumberCheckboxes" style=" ">
<div>
@Html.CheckBox("SelectAllUnitNumbers", false)<label for="SelectAllUnitNumbers"><b>Select/Unselect All Units</b></label>
</div>
<div id="unitCheckboxes">
@foreach (var item in Model)
{
<div style="float:left">
@Html.CheckBox("UnitNumbers", false)<label for="UnitNumbers">@item.unit_number.ToString().PadLeft(3, '0') </label>
</div>
}
</div>
</div>
</form>
</body>
来自表单“frmSelectedUnits”所在的SelectUnits.cshtml。本质上,我正试图将一组复选框值发送回服务器:
public void SetUnitNumbers(object data)
{
int a = 5;
}
<body>
<form id="frmSelectedUnits" action="/" >
<div id="unitNumberCheckboxes" style=" ">
<div>
@Html.CheckBox("SelectAllUnitNumbers", false)<label for="SelectAllUnitNumbers"><b>Select/Unselect All Units</b></label>
</div>
<div id="unitCheckboxes">
@foreach (var item in Model)
{
<div style="float:left">
@Html.CheckBox("UnitNumbers", false)<label for="UnitNumbers">@item.unit_number.ToString().PadLeft(3, '0') </label>
</div>
}
</div>
</div>
</form>
</body>
@复选框(“SelectAllUnitNumber”,false)选择/取消选择所有单位
@foreach(模型中的var项目)
{
@Html.CheckBox(“UnitNumbers”,false)@item.unit_number.ToString().PadLeft(3,'0')
}
是:
其中,数据是随请求发送到服务器的映射或字符串。
调用$(“#frmSelectedUnits”).submit()
可能无法工作
尝试:
要传递给视图的ViewModel是什么?用于创建所有复选框的ViewModel。本质上是一个int值列表,用于显示复选框旁边的单位编号。这就是你的意思吗?我刚试过,但似乎不起作用。作为测试,我将其更改为$.post('/Data/SetUnitNumbers',“TESTING”,function(Data)。请注意,我为数据设置了“TESTING”。这也不会向操作方法发送任何信息。不确定发生了什么。为了清楚起见,操作方法确实被我的断点击中,但传入的值为null。@KeelRisk Your
SetUnitNumbers(对象数据)
需要一个对象?并且,您正在发送一个字符串
?请尝试将其更改为(字符串数据)
@KeelRisk您在控制台中看到了什么?Chrome和Firefox都有js控制台,因此您可以看到发送的内容。jk…问得好。所以我检查了它,它显示我正在向服务器发送请求正文中的“TESTING:”。因此基本上测试没有任何值。因此,我将其更改为:$.post(“/Data/SetUnitNumbers”,{TESTING:$(“#frmSelectedUnits”).serialize(),函数…现在正在将数据发送到服务器。为了澄清,在我的操作方法中,我将输入参数更改为字符串测试,以便匹配。它可以工作!