模型未使用Ajax BeginForm发布到控制器

时间:2016-03-17 16:07:26

标签: asp.net-mvc-4 ajax.beginform

我很困惑,真的很想得到一些帮助。我是第一个计时器,所以请你耐心等待我。所以这里。 我试图使用Ajax Begin Form将模型发布到控制器。但是我总是在控制器上得到null。 这个视图

<div class="col-md-6" id="secondColumn">
 <div id="OtherData">
  @Html.Partial("BindOthLangData", Model.VodCombinedData[2])
 </div>
 </div>

部分视图BindOthLangData

@model Domain.Model.Combinedmodel
@using (Ajax.BeginForm("selectAction", "ControllerName", new AjaxOptions {       LoadingElementId = "loaderdiv" }))
{
for (var i = 0; i < Model.ContentDataLst.Count; i++)
{
      <div class="col-md-12">
            <div class="section">
                @Html.HiddenFor(x => x.ContentDataLst[i].OperatorFiledName)
               @Html.HiddenFor(x => x.ContentDataLst[i].AttributeID)
                @Html.HiddenFor(x => x.ContentDataLst[i].Srid)
                @Html.HiddenFor(x => x.ContentDataLst[i].Value)
                @Html.LabelFor(x => x.ContentDataLst[i], Model.ContentDataLst[i].OperatorFiledName, new { @class = "field-label text-left" })
                <label class="field">
                    @Html.EditorFor(x => x.ContentDataLst[i],  Model.ContentDataLst[i].HtmlType)
                </label>
            </div>
        </div>
    }
}
<div class="col-md-12 mt15 text-right" id="reject">
    <button id="scms" class="btn btn-sm btn-danger" type="submit" name="submitButton" value="Save">Save CMS Metadata </button>
</div>
}

这是行动

[HttpPost]
    public JsonResult selectAction(String submitButton,Combinedmodel objData)
    {
        String status = String.Empty;
        try
        {
            status = saveData(objData);

        }
        catch(Exception ex)
        {
            status = "Error Occurred";
        }
        return Json(status, JsonRequestBehavior.AllowGet);
    }

这是我的模特

public class Combinedmodel
{
   List<Data> contentDataLst = new List<Data> ();

    public List<Data> ContentDataLst
    {
        get { return contentDataLst; }
        set { contentDataLst = value; }
    }
}

public class Data
{
  public string OperatorFiledName {get;set;}
  public int AttributeID {get;set;}
  public int Srid {get;set;}
  public string Value {get;set;}
  public string HtmlType {get;set;}
}

我不知道我做错了什么..请帮忙。调用Action,但发布到控制器的模型为null。

1 个答案:

答案 0 :(得分:-1)

根据for循环,您要发布List<Data>,而不是Combinedmodel

将您的操作方法参数更新为:

public JsonResult selectAction(String submitButton, List<Data> contentDataLst)