C# 无法将类型“System.Web.Mvc.ViewResult”隐式转换为“RegLog.Controllers.IActionResult”

C# 无法将类型“System.Web.Mvc.ViewResult”隐式转换为“RegLog.Controllers.IActionResult”,c#,asp.net-core-mvc,C#,Asp.net Core Mvc,我想寻求帮助,因为我正在为我的ASP.net MVC创建一个筛选器搜索框。我遵循了这个教程,但它在这个代码上有一个错误 public async Task <IActionResult> Index(string searchString) { using (DBModelEntities dbModel = new DBModelEntities()) { ViewData["CurrentFilter"] = sea

我想寻求帮助,因为我正在为我的ASP.net MVC创建一个筛选器搜索框。我遵循了这个教程,但它在这个代码上有一个错误

public async Task <IActionResult> Index(string searchString)
    {
        using (DBModelEntities dbModel = new DBModelEntities())
        {
            ViewData["CurrentFilter"] = searchString;

            var products = (from p in dbModel.Products
                            select p);
            if(!String.IsNullOrEmpty(searchString))
            {
                products.Where(p => p.productName.Contains(searchString));
            }

            return View(await products.AsNoTracking().ToListAsync());//it had the error which states that Cannot implicitly convert type 'System.Web.Mvc.ViewResult' to 'RegLog.Controllers.IActionResult'
        }
    }
导入RegLog.Controllers错误。这个包来自另一个框架。确保使用System.Web.Mvc导入;或使用Microsoft.AspNetCore.Mvc;来自教程


来源:

您当前使用的是哪个MVC版本?确保已引用并使用Microsoft.AspNetCore.Mvc而不是System.Web.Mvc从IActionResult返回ViewResult。RegLog.Controllers.IActionResult来自何处?您是否创建了自己的IActionResult interfade?还是从图书馆借的?在任何情况下,错误都是明确的-不知何故,RegLog.Controllers命名空间是通过using语句添加到控制器的,编译器认为您指定的IActionResult来自该命名空间。解决方案是使用using语句删除该语句。您可能应该删除该类。如果类与.NET infrastructure类具有相同的名称,则只会导致问题代码还有另一个问题-它试图加载所有产品,而不仅仅是那些包含搜索字符串的产品。在创建新的可查询项的地方,它不会修改现有的one@JimboDelfin第三个问题,正如其他人提到的:System.Web.Mvc.ViewResult不是ASP.NET核心的一部分,而是整个框架的一部分。我怀疑你没有从页面开始学习教程。ASP.NET核心项目模板添加了提供IActionResult和ActionResult@PanagiotisKanavos我想我创造了我自己的结果。我是MVC的新手,所以我很抱歉。先生,我怎样才能去掉它?我想我加了它。先生,我怎样才能取下它?MVCJ中的新功能是在文件中搜索RegLog.Controllers并删除包含该字符串的行。该行应该类似于使用RegLog.Controllers;