mvc4 dropdownlistfor数据绑定与Post,但不与Ajax调用

时间:2014-04-02 19:59:45

标签: jquery asp.net-mvc http-post bind html.dropdownlistfor

我在表格行中有一个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; }
}

非常感谢你的帮助。

0 个答案:

没有答案