如何向System.Linq.Iqueryable添加T 我在写这篇文章的中间,但是在StAcExoPro的帮助下,我发现了一个提示,帮助我解决了我的问题,但是我想把这个贴出来,以帮助其他开发者,如果他们遇到这个问题,对VB.NET、ASP.NET和MVC5是新的。

如何向System.Linq.Iqueryable添加T 我在写这篇文章的中间,但是在StAcExoPro的帮助下,我发现了一个提示,帮助我解决了我的问题,但是我想把这个贴出来,以帮助其他开发者,如果他们遇到这个问题,对VB.NET、ASP.NET和MVC5是新的。,asp.net,vb.net,linq,asp.net-mvc-5,Asp.net,Vb.net,Linq,Asp.net Mvc 5,我将faqs类型的变量声明为System.Linq.IQuerable(of ViewModels.FaqViewModel)'注意,我创建了一个FaqViewModel来传递查看所需的模型数据 但是,有时查询结果可能为null,但我需要将至少一个项传递回视图,以便显示一些结果并将原始搜索查询返回到搜索框 这是我的代码,我遗漏了什么 查看 ---@ModelType IEnumerable(属于CompanyName.ViewModels.FaqViewModel) 控制器 函数SearchFa

我将faqs类型的变量声明为System.Linq.IQuerable(of ViewModels.FaqViewModel)'注意,我创建了一个FaqViewModel来传递查看所需的模型数据

但是,有时查询结果可能为null,但我需要将至少一个项传递回视图,以便显示一些结果并将原始搜索查询返回到搜索框

这是我的代码,我遗漏了什么

查看 ---@ModelType IEnumerable(属于CompanyName.ViewModels.FaqViewModel)

控制器 函数SearchFaqs()作为ActionResult 将url设置为字符串 Dim txtSearchTerm作为字符串

        If Request("txtSearch").IsNullOrWhiteSpace() Then
            txtSearchTerm = ""
        Else
            txtSearchTerm = Request("txtSearch")
        End If



        url = Request.UrlReferrer.ToString()
        Dim faqs = (From f In _db.Faqs _
                   Where Not f.Hk_DeletedDt.HasValue _
                   And f.Question.Contains(txtSearchTerm) _
                   Or f.Answer.Contains(txtSearchTerm) _
                   Or f.Hk_DeletedDt = New DateTime(1900, 1, 1) _
                   And f.Active = 1 _
                   Order By f.CategoryId Descending _
                   Select New FaqViewModel With {
                                                .Question = f.Question,
                                                .Answer = f.Answer,
                                                .SearchTerm = txtSearchTerm
                                                })


        If Not faqs.Any() Then

            faqs.Union(Of FaqViewModel)(IEnumerable)

            '(New FaqViewModel With {
            '                                                .Question = "Your Search did not contain any results please try again.",
            '                                                .Answer = "",
            '                .SearchTerm = txtSearchTerm
            '                                                })



        End If

        Return View("Faq", faqs)

    End Function

我找到了解决问题的方法

**控制器已更新,只需转换为.ToList**

        <HttpPost>
    Function SearchFaqs() As ActionResult
        Dim url As String
        Dim txtSearchTerm As String

        If Request("txtSearch").IsNullOrWhiteSpace() Then
            txtSearchTerm = ""
        Else
            txtSearchTerm = Request("txtSearch")
        End If



        url = Request.UrlReferrer.ToString()
        Dim faqs = (From f In _db.Faqs _
                   Where Not f.Hk_DeletedDt.HasValue _
                   And f.Question.Contains(txtSearchTerm) _
                   Or f.Answer.Contains(txtSearchTerm) _
                   Or f.Hk_DeletedDt = New DateTime(1900, 1, 1) _
                   And f.Active = 1 _
                   Order By f.CategoryId Descending _
                   Select New FaqViewModel With {
                                                .Question = f.Question,
                                                .Answer = f.Answer,
                                                .SearchTerm = txtSearchTerm
                                                })**.ToList**


        If Not faqs.Any() Then
            **Dim noResultsFaq As New FaqViewModel
            noResultsFaq.Question = "Your Search did not contain any results please try again."
            noResultsFaq.Answer = ""
            noResultsFaq.SearchTerm = txtSearchTerm
            faqs.Add(noResultsFaq)**
        End If

        Return View("Faq", faqs)

    End Function

函数SearchFaqs()作为ActionResult
将url设置为字符串
Dim txtSearchTerm作为字符串
如果请求(“txtSearch”).IsNullOrWhiteSpace()则
txtSearchTerm=“”
其他的
txtSearchTerm=请求(“txtSearch”)
如果结束
url=Request.urlReferer.ToString()
Dim FAQ=(来自f In _db.faq_
其中不是f.Hk\U DeletedDt.HasValue_
和f.Question.Contains(txtSearchTerm)_
或f.Answer.Contains(txtSearchTerm)_
或f.Hk_DeletedDt=新日期时间(1900,1,1)_
f.主动=1_
按f.CategoryId降序排列_
选择新的FaqViewModel和{
.问题,
.答案,
.SearchTerm=txtSearchTerm
})**托利斯先生**
如果不是FAQ.Any(),那么
**Dim noResultsFaq作为新的常见问题视图模型
noResultsFaq.Question=“您的搜索未包含任何结果,请重试。”
noResultsFaq.Answer=“”
noResultsFaq.SearchTerm=txtsSearchTerm
常见问题。添加(noResultsFaq)**
如果结束
返回视图(“常见问题”,常见问题)
端函数