我在表格行中有一个DropDowListFor。如果我使用HttpPost提交表单,则下拉列表会为我的ViewModel数据绑定,并为每一行提供正确的值。但是,如果我执行ajax调用而不是提交,则数据绑定仅适用于第一行,但不适用于后续行,这些行都为空。
我的PartialView(位于Html.BeginForm中)就像这样
@Html.DropDownListFor(x => Model.FilterConditionsIsBoolTrue[i]
, new [] { new SelectListItem { Text = "True", Value="true" } , new SelectListItem { Text = "False", Value="false"} }
, new { @class = "isbooldropdown" })
我的Ajax调用是:
$('#btnRun').click(function () {
var form = $("#CriteriaFormId");
$.ajax({
url: "/Screener/PostFilterResults",
data: form.serialize(),
type: 'POST',
success: function (myResult) {
$('#resultstable').html(myResult);
}
})
});
和我的ViewModel:
public class FilterVM
{
public FilterVM(GenesisFT.WebApps.Models.Filter filter, List<FilterConditionDefinition> fcd)
{
gftFilter = filter;
FilterConditionDefinitions = fcd;
foreach (FilterConditionDefinition filterConditionDefinition in FilterConditionDefinitions)
{
// TEST
FilterConditionsIsBoolTrue = new string[50];
for (int i = 0; i < FilterConditionsIsBoolTrue.Length; i++)
{
FilterConditionsIsBoolTrue[i] = "true";
}
}
public string[] FilterConditionsIsBoolTrue { get; set; }
}
非常感谢你的帮助。