Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVC通过列表<;T>;从视图到控制器为空_C#_Asp.net Mvc_Model View Controller_Null - Fatal编程技术网

C# MVC通过列表<;T>;从视图到控制器为空

C# MVC通过列表<;T>;从视图到控制器为空,c#,asp.net-mvc,model-view-controller,null,C#,Asp.net Mvc,Model View Controller,Null,请您知道为什么我的列表在从视图传递模型后为空。。我尝试了我在这里找到的任何解决方案,但仍然一无所获。列表是具有其他视图的模型类的一部分 模型视图: public class PorizeniWzView { public PorizeniWzDataView ProjectDataView { get; set; } public PorizeniWzSuppliersView SupplierView { get; set; } public PorizeniWzPro

请您知道为什么我的列表在从视图传递模型后为空。。我尝试了我在这里找到的任何解决方案,但仍然一无所获。列表是具有其他视图的模型类的一部分

模型视图:

public class PorizeniWzView
{
    public PorizeniWzDataView ProjectDataView { get; set; }
    public PorizeniWzSuppliersView SupplierView { get; set; }
    public PorizeniWzProjectStateView ProjectStateView { get; set; }
    public WzUberView WzUberView { get; set; }

    public PorizeniWzEventView CurrentEventView { get; set; }
    public PorizeniWzEventView NextEventView { get; set; }

    public PorizeniWzPatternsView PatternView { get; set; }
    public PorizeniWzPhasesView CurrentPhaseView { get; set; }


    public List<PorizeniWzEventView> ListOfProjectEvents { get; set; }
    public List<int> ListOfProjectEventInt { get; set; }
    public List<PorizeniWzProjectStateView> ListOfProjectStates { get; set; }
}
控制器(保存形式):这里我在数据库中更新事件

    [HttpPost]
    public ActionResult a1_FillUpEventsSave(PorizeniWzView view)
    {
        if(!ModelState.IsValid) KontrolaHelp.ErrorModel(ModelState);
        var t = _repo.GetPodlePK(view.ProjectDataView.Project_Id);            
        if (t == null) KontrolaHelp.Error("Chyba DB. Projekt pořízení WZ nenalezen!");
        using (var transakce = _jednotka.Transakce_New())
        {
            foreach (var ev in view.ListOfProjectEvents)
            {
                if (ev.BasicEvent.HasValue && ev.BasicEvent.Value)
                {
                    var e = t?.Events1.Single(x => x.Event_Id == ev.Event_Id);
                    if (e == null) continue;
                    e.DatePlanned = ev.DatePlanned;
                    _repoEvents.Update(e);
                }
            }

            t.ProjectState_Id = (int) PorizeniWzSTAV.a17_Nastaveny;
            _repo.Update(t);
            transakce.Commit();
        }

        return RedirectToAction("Index");
    }    
用于初始化事件列表的方法

        public List<PorizeniWzEventView> GetEventsForProject(int? id)
    {
        var repoEventTypes = new TabPorizeniWzEventsTypesRepo(_jednotkaPrace);
        var set = GetSet().Where(t => t.ProjectId == id).OrderBy(t => t.Order);
        var list = set.ToList();
        foreach (var porizeniWzEventView in list){
            porizeniWzEventView.ListOfStates = repoEventTypes.DoplnStavyProTypUdalosti(porizeniWzEventView.EventTypeId);
        }
        return set.ToList();
    }
public List getevents项目(int?id)
{
var repoEventTypes=新的TabPorizeniWzEventsTypesRepo(_jednotkaPrace);
var set=GetSet().Where(t=>t.ProjectId==id).OrderBy(t=>t.Order);
var list=set.ToList();
foreach(列表中的var porizeniWzEventView){
porizeniWzEventView.ListOfStates=repoEventTypes.DoplnStavyProTypUdalosti(porizeniWzEventView.EventTypeId);
}
返回set.ToList();
}

三个列表中的哪一个?您是否尝试在任何地方创建这些列表?仅在模型中定义它们不会创建它们,因此基于您的代码,它们始终为空,因为它们从未创建过。请将
操作中的代码包含在
控制器中。错误就在那里。你还没有在任何地方初始化你的列表。。。可以在viewModel中创建一个方法,在其中初始化列表,然后将其设置为属性。然后您可以从控制器调用此方法。谢谢帮助。。它是项目事件列表。当进入查看时,我在控制器中初始化列表。在视图中,我看到列表中的项目,但当我将模型传递回控制器时,它的值为NULL。三个列表中的哪一个?您是否尝试在任何位置创建这些列表?仅在模型中定义它们不会创建它们,因此基于您的代码,它们始终为空,因为它们从未创建过。请将
操作中的代码包含在
控制器中。错误就在那里。你还没有在任何地方初始化你的列表。。。可以在viewModel中创建一个方法,在其中初始化列表,然后将其设置为属性。然后您可以从控制器调用此方法。谢谢帮助。。它是项目事件列表。当进入查看时,我在控制器中初始化列表。在视图中,我看到列表中的项,但当我将模型传递回控制器时,它为NULL。
    [HttpPost]
    public ActionResult a1_FillUpEventsSave(PorizeniWzView view)
    {
        if(!ModelState.IsValid) KontrolaHelp.ErrorModel(ModelState);
        var t = _repo.GetPodlePK(view.ProjectDataView.Project_Id);            
        if (t == null) KontrolaHelp.Error("Chyba DB. Projekt pořízení WZ nenalezen!");
        using (var transakce = _jednotka.Transakce_New())
        {
            foreach (var ev in view.ListOfProjectEvents)
            {
                if (ev.BasicEvent.HasValue && ev.BasicEvent.Value)
                {
                    var e = t?.Events1.Single(x => x.Event_Id == ev.Event_Id);
                    if (e == null) continue;
                    e.DatePlanned = ev.DatePlanned;
                    _repoEvents.Update(e);
                }
            }

            t.ProjectState_Id = (int) PorizeniWzSTAV.a17_Nastaveny;
            _repo.Update(t);
            transakce.Commit();
        }

        return RedirectToAction("Index");
    }    
        public List<PorizeniWzEventView> GetEventsForProject(int? id)
    {
        var repoEventTypes = new TabPorizeniWzEventsTypesRepo(_jednotkaPrace);
        var set = GetSet().Where(t => t.ProjectId == id).OrderBy(t => t.Order);
        var list = set.ToList();
        foreach (var porizeniWzEventView in list){
            porizeniWzEventView.ListOfStates = repoEventTypes.DoplnStavyProTypUdalosti(porizeniWzEventView.EventTypeId);
        }
        return set.ToList();
    }