gpt4 book ai didi

asp.net-mvc - ASP.NET MVC 应用程序 Controller 构造函数问题

转载 作者:行者123 更新时间:2023-12-01 12:43:09 25 4
gpt4 key购买 nike

我创建了一个应用程序 Controller 抽象类,我的 Controller 从中派生(如下所述 article )

以下是我的代码的示例

public abstract class ApplicationController : Controller
{
private ProjectDataContext datacontext = new ProjectDataContext();

protected ProjectDataContext DataContext
{
get { return datacontext; }
}

public ApplicationController()
{
ViewData["OpenTasks"] = DataContext.Tasks.Where(t => t.UserId == this.UserId).Count();
}
}

这会产生以下错误,我确定这是由于“Where” lamda 表达式:

如果 Controller 没有 Controller 工厂,请确保它具有无参数的公共(public)构造函数。

无论我以何种方式编写 LINQ 查询,都会产生此错误,编译应用程序的唯一方法是删除“Where”子句,如下所示。
ViewData["OpenTasks"] = DataContext.Tasks.Count();

任何想法是什么问题或如何解决这个问题,因为我需要对用户执行查询而不返回所有条目。

提前致谢

最佳答案

试试这个而不是使用构造函数: -

public abstract class ApplicationController : Controller
{
private ProjectDataContext datacontext = new ProjectDataContext();

protected ProjectDataContext DataContext
{
get { return datacontext; }
}

protected override void Initialize(System.Web.Routing.RequestContext requestContext)
{
base.Initialize(RequestContext);
ViewData["OpenTasks"] = DataContext.Tasks.Where(t => t.UserId == this.UserId).Count();
}
}

当前用户 ID 很可能依赖于 RequestContext

关于asp.net-mvc - ASP.NET MVC 应用程序 Controller 构造函数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/438870/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com