Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.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# 正在使用所选Id检查项目Id_C#_Asp.net Mvc - Fatal编程技术网

C# 正在使用所选Id检查项目Id

C# 正在使用所选Id检查项目Id,c#,asp.net-mvc,C#,Asp.net Mvc,这在我的控制器中,我正在尝试用项目填充下拉列表。我已经在基于活动项目进行填充,但我还想添加以前选择的项目,即使它现在处于非活动状态。我想签入Where子句以获取活动项,但我还想添加一个“or”以获取列表中参与方类型id之前选择的参与方类型id viewModel.AvailablePartyTypes = _partyTypeRepository.FindAll().OrderBy(o => o.Description).Where(a => a.IsActi

这在我的控制器中,我正在尝试用项目填充下拉列表。我已经在基于活动项目进行填充,但我还想添加以前选择的项目,即使它现在处于非活动状态。我想签入Where子句以获取活动项,但我还想添加一个“or”以获取列表中参与方类型id之前选择的参与方类型id

viewModel.AvailablePartyTypes =
            _partyTypeRepository.FindAll().OrderBy(o => o.Description).Where(a => a.IsActive).ToSelectList(
                "PartyTypeId", "Description", viewModel.PartyTypeId.ToString());
这就是我想要得到的:

Where(a=>a.IsActive || selected.PartyTypeId == PartyTypeId)

也许我忽略了一些事情,但这不是很简单吗

Where(a=>a.IsActive || selected.PartyTypeId == a.PartyTypeId)
编辑:

如果它变得复杂,则将其重构为如下方法调用:

Where(a=> UseItem(a))

private static bool UseItem(object a)
    {
        bool result = a.IsActive;
        //etc
        return result;
    }

我不太清楚为什么我的答案被删除了。尽管其他人也提供了帮助,但我得到答案和形成的方式并不是真正由帮助我的人产生的。我已经把它贴在我原来的问题帖子上了。

这本书对我来说很有用。我的一些where子句类似于:where(a=>a.IsActive→false | | a.PartyTypeId==ViewModel.PartyTypeId)错误是无形的,它不会得到活跃的项目。当有复杂的lambda考虑通过方法调用替换它们时。谢谢帮助,我可以四处游玩,找出另一种解决方案,它恰好类似于你的第一个建议。再次感谢