我正在处理一个MVC应用程序,此时应返回在SQL表中创建条目的区分用户。我在表格中有一个名为EnteredBy的列,其中包含所有用户(约10个不同用户)的姓名,他们已多次输入。我曾尝试LINQ查询,但它不工作:无法获得独特的方法来处理LINQ查询
[HandleError]
public ActionResult DisplayCount()
{
var enteredBy = (from user in db.Table
select user.EnteredBy).Distinct();
ViewBag.Count = enteredBy.Count();
return View(enteredBy);
}
我也试过这种由别人的建议:
[HandleError]
public ActionResult DisplayCount()
{
var enteredBy = (from user in db.Table
select new { user.EnteredBy}).Distinct();
ViewBag.Count = enteredBy.Count();
return View(enteredBy);
}
查看:
@model IEnumerable<Statistic.Models.Table>
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>DisplayCount</title>
</head>
<body>
<div>
Entered by: <br /><br />
@foreach (var m in Model)
{
@m.EnteredBy <br />
}
<br /> Total Count: <br />
@ViewBag.Count
</div>
</body>
</html>
但它产生相同结果:
产生未处理的异常d在执行当前Web请求期间。关于异常的来源和位置的信息可以使用下面的异常堆栈跟踪来标识。
有什么我失踪了吗?
堆栈跟踪:
[InvalidOperationException: The model item passed into the dictionary is of type 'System.Data.Entity.Infrastructure.DbQuery`1[<>f__AnonymousType4`1[System.String]]', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable`1[Statistic.Models.DashboardLibAnswer]'.]
System.Web.Mvc.ViewDataDictionary`1.SetModel(Object value) +175
System.Web.Mvc.ViewDataDictionary..ctor(ViewDataDictionary dictionary) +361
System.Web.Mvc.WebViewPage`1.SetViewData(ViewDataDictionary viewData) +49
System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance) +98
System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer) +107
System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) +291
System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult) +13
System.Web.Mvc.<>c__DisplayClass1a.<InvokeActionResultWithFilters>b__17() +23
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) +245
System.Web.Mvc.<>c__DisplayClass1c.<InvokeActionResultWithFilters>b__19() +22
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult) +176
System.Web.Mvc.Async.<>c__DisplayClass2a.<BeginInvokeAction>b__20() +75
System.Web.Mvc.Async.<>c__DisplayClass25.<BeginInvokeAction>b__22(IAsyncResult asyncResult) +99
System.Web.Mvc.Async.WrappedAsyncResult`1.End() +50
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +27
System.Web.Mvc.<>c__DisplayClass1d.<BeginExecuteCore>b__18(IAsyncResult asyncResult) +14
System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +23
System.Web.Mvc.Async.WrappedAsyncResult`1.End() +55
System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +39
System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +23
System.Web.Mvc.Async.WrappedAsyncResult`1.End() +55
System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +29
System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +10
System.Web.Mvc.<>c__DisplayClass8.<BeginProcessRequest>b__3(IAsyncResult asyncResult) +25
System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +23
System.Web.Mvc.Async.WrappedAsyncResult`1.End() +55
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +31
System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +9629296
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155
你能后的堆栈跟踪? – Dismissile
已添加堆栈跟踪 – Nick
添加了答案 - 看起来您的视图有错误的模型类型。 – Dismissile