0

我的 ajax 表单有问题:我有这个代码

@using (Ajax.BeginForm("Search", "SyntheseEvt",
                                            FormMethod.Post,
                                            new AjaxOptions
                                            {
                                                InsertionMode = InsertionMode.Replace,
                                                HttpMethod = "POST",
                                                UpdateTargetId = "search-results"
                                            }
                                            ))

        {
        <div class="row">
        @{
         CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture;


        <div class="col-md-4">
            <div class="dx-field-label">@Resources.Resource.DDebut</div>
            <div class="dx-field-value">
                @(Html.DevExtreme().DateBox()
                        .ID("DtDebut")
                        .Type(DateBoxType.Date)
                        .Value(Model.paramSynthese.DtDebut_c)
                    .DisplayFormat(currentCulture.DateTimeFormat.ShortDatePattern)
                )

用那个模型

public class SearchSyntheseEvtViewModel
{
    public C_DAL_TRS_ATELIER DAL_TRS_ATELIER_c;
    public List<C_BEL_TRS_ATELIER> ListBEL_TRS_ATELIER_c;
    public C_DAL_TRS_MACHINE DAL_TRS_MACHINE_c;
    public List<C_BEL_TRS_MACHINE> ListBEL_TRS_MACHINE;
    public ParamSyntheseEvtViewModel paramSynthese;


    public  SearchSyntheseEvtViewModel()
    {
    }
    public SearchSyntheseEvtViewModel Initialiser()
    {
        this.DAL_TRS_ATELIER_c = new C_DAL_TRS_ATELIER(C_Interface_Meta.Mesbdd_p, C_Interface_Meta.IndexBdd_p);
        this.DAL_TRS_MACHINE_c = new C_DAL_TRS_MACHINE(C_Interface_Meta.Mesbdd_p, C_Interface_Meta.IndexBdd_p);
        paramSynthese = new ParamSyntheseEvtViewModel();
        paramSynthese = paramSynthese.Initialiser();
        paramSynthese = paramSynthese.Charger();
        return this;
    }
    public SearchSyntheseEvtViewModel Charger()
    {
        DAL_TRS_ATELIER_c.Charger(ref ListBEL_TRS_ATELIER_c);
        DAL_TRS_MACHINE_c.Charger(ref ListBEL_TRS_MACHINE);
        return this;
    }
}


public class ParamSyntheseEvtViewModel
{
    public string AT_ID_c { get; set; }
    public string TR_ID_c { get; set; }
    public DateTime DtDebut_c;
    public DateTime DtFin_c;
    public Metaproductique.Kmprod.Km_Synthese_Moteur.C_SyntheseEvenement Moteur_c { get; set; }
    public List<string> MA_ID_c { get; set; }
    public List<string> RE_ID_c { get; set; }
    public C_SyntheseEvenement.Regroupement Regroupement_c { get; set; }
    public C_SyntheseEvenement.Type Type_c { get; set; }
    public DataSet DsDonnees_c = new DataSet();
    public string Requete;
    public ParamSyntheseEvtViewModel()
    {
    }
    public ParamSyntheseEvtViewModel Initialiser()
    {
        Moteur_c = new Metaproductique.Kmprod.Km_Synthese_Moteur.C_SyntheseEvenement();
        Moteur_c.Initialiser(C_Interface_Meta.Mesbdd_p, C_Interface_Meta.IndexBdd_p);
        DtDebut_c = DateTime.Now.AddYears(-1);
        DtFin_c = DateTime.Now;
        return this;
    }


    public ParamSyntheseEvtViewModel Charger()
    {
        return this;
    }
public class SearchSyntheseEvtViewModel
{
    public C_DAL_TRS_ATELIER DAL_TRS_ATELIER_c;
    public List<C_BEL_TRS_ATELIER> ListBEL_TRS_ATELIER_c;
    public C_DAL_TRS_MACHINE DAL_TRS_MACHINE_c;
    public List<C_BEL_TRS_MACHINE> ListBEL_TRS_MACHINE;
    public ParamSyntheseEvtViewModel paramSynthese;


    public  SearchSyntheseEvtViewModel()
    {
    }
    public SearchSyntheseEvtViewModel Initialiser()
    {
        this.DAL_TRS_ATELIER_c = new C_DAL_TRS_ATELIER(C_Interface_Meta.Mesbdd_p, C_Interface_Meta.IndexBdd_p);
        this.DAL_TRS_MACHINE_c = new C_DAL_TRS_MACHINE(C_Interface_Meta.Mesbdd_p, C_Interface_Meta.IndexBdd_p);
        paramSynthese = new ParamSyntheseEvtViewModel();
        paramSynthese = paramSynthese.Initialiser();
        paramSynthese = paramSynthese.Charger();
        return this;
    }
    public SearchSyntheseEvtViewModel Charger()
    {
        DAL_TRS_ATELIER_c.Charger(ref ListBEL_TRS_ATELIER_c);
        DAL_TRS_MACHINE_c.Charger(ref ListBEL_TRS_MACHINE);
        return this;
    }
}


public class ParamSyntheseEvtViewModel
{
    public string AT_ID_c { get; set; }
    public string TR_ID_c { get; set; }
    public DateTime DtDebut_c;
    public DateTime DtFin_c;
    public Metaproductique.Kmprod.Km_Synthese_Moteur.C_SyntheseEvenement Moteur_c { get; set; }
    public List<string> MA_ID_c { get; set; }
    public List<string> RE_ID_c { get; set; }
    public C_SyntheseEvenement.Regroupement Regroupement_c { get; set; }
    public C_SyntheseEvenement.Type Type_c { get; set; }
    public DataSet DsDonnees_c = new DataSet();
    public string Requete;
    public ParamSyntheseEvtViewModel()
    {
    }
    public ParamSyntheseEvtViewModel Initialiser()
    {
        Moteur_c = new Metaproductique.Kmprod.Km_Synthese_Moteur.C_SyntheseEvenement();
        Moteur_c.Initialiser(C_Interface_Meta.Mesbdd_p, C_Interface_Meta.IndexBdd_p);
        DtDebut_c = DateTime.Now.AddYears(-1);
        DtFin_c = DateTime.Now;
        return this;
    }


    public ParamSyntheseEvtViewModel Charger()
    {

        return this;
    }

在控制器中我达到了我的方法

    [HttpPost]
    public ActionResult Search(SearchSyntheseEvtViewModel search)
    {
        ParamSyntheseEvtViewModel myParams;


        myParams = search.paramSynthese;
        if (myParams != null)
        {

但我的搜索 ViewModel 中的所有内容都是空的......

我在想它是关于 devextreme html 元素的。我正在尝试将我的嵌套模型 ParamSyntheseEvtViewModel 绑定到控制器中的发布操作 –</p>

有人知道吗?

4

1 回答 1

0

嘿伙计们,我解决了:我的子模型上缺少 get/set 属性!

于 2018-06-29T04:47:32.713 回答