asp.net – .net MVC将linq数据从控制器传递到视图
我试图从控制器传递数据到视图.我在网上搜索但找不到解决方案.
如果我这样做它有效: 控制器: var yyy = (from a in Connection.Db.Authorities select a) ; ViewBag.data = yyy; 视图: @foreach(var item in ViewBag.data) { @item.Value } 但是以下代码不起作用: 控制器: var yyy = (from a in Connection.Db.Authorities select new {Value = a.Value,TypeCode = a.TypeCode,Return = Calculate(a.Return)}) ; ViewBag.data = yyy; 视图: @foreach(var item in ViewBag.data) { @item.Value } 它为视图文件提供“item不包含Value的定义”. 任何帮助都会很棒. 谢谢. -edited:更新了第二个控制器linq查询.并更正了第一个控制器linq查询. 解决方法
这是因为你已经选择了Value,Value没有Value这样的属性.您应该更改控制器:
var yyy =(来自Connection.Db.Authorities中的a选择a.Value);至 var yyy = (from a in Connection.Db.Authorities select a); 或者将视图更改为 @foreach(var item in ViewBag.data) { @item } ////////////////////////////////////////////////编辑/ /////////////////////////////////////////////// public class AuthoritiesViewModel { public string Value { get; set; } public string TypeCode { get; set; } public string Return { get; set; } } 并更改您的控制器: var yyy = (from a in Connection.Db.Authorities select new AuthoritiesViewModel{ Value = a.Value,Return = Calculate(a.Return)}); ViewBag.data = yyy; 在您的视图中,您将能够使用: <table> <tr> <th>Value</th> <th>TypeCode</th> <th>Return</th> </tr> @foreach(AuthoritiesViewModel item in ViewBag.data) { <tr> <td>@item.Value<td> <td>@item.TypeCode<td> <td>@item.Return<td> </tr> } </table> 另外,我有一个问题要问你.为什么使用ViewBag将数据从控制器传递到视图?为什么不根据MVC模式使用Model传递这些数据? ////////////////////////////////////////////////更多编辑//////////////////////////////////////////////// public class AuthoritiesViewModel { public string Value { get; set; } public string TypeCode { get; set; } public string Return { get; set; } } public class AnotherQueryViewModel { public string AnotherQueryValue { get; set; } public string AnotherQueryTypeCode { get; set; } public string AnotherQueryReturn { get; set; } } public class ModelClass { IEnumerable<AuthoritiesViewModel> Authorities { get; set; } IEnumerable<AnotherQueryViewModel> AnotherQueryResults { get; set; } } 并更改控制器: var yyy = (from a in Connection.Db.Authorities select new AuthoritiesViewModel{ Value = a.Value,Return = Calculate(a.Return)}); // do your another select var zzz = (from smthing select new AnotherQueryViewModel ...) // create model instance ModelClass model = new ModelClass() { Authorities = yyy.AsEnumerable(),AnotherQueryResults = zzz..AsEnumerable() } // return view with model return View("view",model); 在视图中你可以使用: @model ModelClass @*display first query result*@ <table> <tr> <th>Value</th> <th>TypeCode</th> <th>Return</th> </tr> @foreach(AuthoritiesViewModel item in Model.Authorities) { <tr> <td>@item.Value<td> <td>@item.TypeCode<td> <td>@item.Return<td> </tr> } </table> @*display second query result*@ <table> <tr> <th>Another Query Value</th> <th>Another Query TypeCode</th> <th>Another Query Return</th> </tr> @foreach(AnotherQueryViewModel item in Model.AnotherQueryResults) { <tr> <td>@item.AnotherQueryValue<td> <td>@item.AnotherQueryTypeCode<td> <td>@item.AnotherQueryReturn<td> </tr> } </table> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 为什么NuPack生成的NinjectMVC3.cs无法编译? (或者ASP.NET
- asp.net – 为什么这个DateTime.ParseExact语句不起作用?
- asp.net – 如何以编程方式从LDAP检索信息
- 使用ASP.NET MVC进行Windows身份验证
- asp.net – FxCop抑制
- asp.net-core – asp.net核心会话不是用户特定的吗?
- asp.net-mvc – MVC:传入字典的模型项是X类型,但是这个字典
- asp.net-core – 如何轻松地从ASP.NET Core 2.1迁移到2.2?
- asp.net – 如何绕过X框架选项:SAMEORIGIN HTTP头?
- asp.net – 确定哪个UpdatePanel导致部分(异步)PostBack?