- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我不是很明白为什么我的 MVC5/EF6/Code First 迁移应用程序会出现此错误。我正在尝试(在我的用户列表中)显示组织的 [名称] 或用户当前关联的发起人的 [名称]。我在我的 IdentityModels.cs 中定义了以下属性:
[GridColumn(Title = "Org.", SortEnabled = true, Width = "100")]
public int? MemberOrgId { get; set; }
[NotMappedColumn]
public int? SponsorOrgId { get; set; }
[NotMappedColumn]
public virtual MemberOrganizations Organization { get; set; }
[NotMappedColumn]
public virtual SponsorOrganizations Sponsor { get; set; }
MemberOrganizations.cs:
[Required]
[Display(Name = "Organization")]
public string Name { get; set; }
[Display(Name = "Users:")]
public virtual ICollection<ApplicationUser> Users { get; set; }
SponsorOrganizations.cs:
[Required]
[Display(Name="Name")]
public string Name { get; set; }
[Display(Name = "Users:")]
public virtual ICollection<ApplicationUser> Users { get; set; }
这是我目前正在使用的索引 View :
@using GridMvc.Html
@model IEnumerable<PROJECTS.Models.ApplicationUser>
@{
ViewBag.Title = "View Users";
Layout = "~/Areas/Admin/Views/Shared/_LayoutAdmin.cshtml";
}
<div class="overflowPrevention">
<!-- Grid.MVC Code -->
<div>
@Html.Grid(Model).Columns(columns =>
{
columns.Add().Encoded(false).Sanitized(false).RenderValueAs(o => Html.ActionLink("Edit", "Edit", "UserManagement", new { id = o.Id }, null)).SetWidth(15);
columns.Add().Encoded(false).Sanitized(false).RenderValueAs(o => o.Name).Titled("Name").Sortable(true).Filterable(true).SetWidth(100);
columns.Add().Encoded(false).Sanitized(false).RenderValueAs(o => o.Position).Titled("Position").Sortable(true).Filterable(true).SetWidth(50);
columns.Add().Encoded(false).Sanitized(false).RenderValueAs(o => o.Email).Titled("Email").Sortable(true).Filterable(true).SetWidth(100);
columns.Add().Encoded(false).Sanitized(false).RenderValueAs(o => o.EmailConfirmed.ToString()).Titled("Confirmed").Sortable(true).Filterable(true).SetWidth(100);
// VALUE TRYING TO RENDER
columns.Add().Encoded(false).Sanitized(false).RenderValueAs(o => o.Organization.ToString()).Titled("MemOrg.").Sortable(true).Filterable(true).SetWidth(25);
// BELOW CORRECTLY RENDERS THE MEMBER ORG ID
columns.Add().Encoded(false).Sanitized(false).RenderValueAs(o => o.MemberOrgId.ToString()).Titled("MemOrg.").Sortable(true).Filterable(true).SetWidth(25);
// BELOW CORRECTLY RENDERS THE SPONSOR ID
columns.Add().Encoded(false).Sanitized(false).RenderValueAs(o => o.SponsorOrgId.ToString()).Titled("Sponsor").Sortable(true).Filterable(true).SetWidth(25);
}).WithPaging(5)
</div>
</div>
我之前尝试过 columns.Add().Encoded(false).Sanitized(false).RenderValueAs(f => Html.Raw(s => s.Organization.Name));
但是段s => s.Organization.Name
一直导致 Cannot convert lambda expression to type 'object' because it is not a delegate type
.
据我所知,我的代码行 columns.Add().Encoded(false).Sanitized(false).RenderValueAs(o => o.Organization.ToString()).Titled("MemOrg.").Sortable(true).Filterable(true).SetWidth(25);
应该能够正确呈现 [Name](在模型中指定显示为“组织”),但是当加载 View 时我收到 Object reference not set to an instance of an object.
谁能解释我做错了什么?
编辑:我发现 [User.Organization] (MemberOrganizations.Name) & [User.Sponsor] (SponsorOrganizations.Name) 确实从我的 Controller 传递为 null。为了解决这个问题,我没有尝试循环遍历我的 <ApplicationUser>
列表。的并查询适当的表以填充当前的空值。
这是我目前所拥有的:
// GET: Admin/UserManagement
public async Task<ActionResult> Index()
{
ViewBag.headerTitle = "User Management";
ViewBag.showCreateButton = true;
ViewBag.createUrl = "/Admin/UserManagement/Create";
ViewBag.createText = " Create a New User";
List<ApplicationUser> model = UserManager.Users.ToList();
foreach (ApplicationUser user in model)
{
if (user.MemberOrgId != null)
{
user.Organization = db.MemberOrganizations.Find(user.Organization);
}
if (user.SponsorOrgId != null)
{
user.Sponsor = db.SponsorOrganizations.Find(user.SponsorOrgId);
}
}
return View(model);
}
中断第一个用户,user.Sponsor
属性(property)最终成为:
?user.Sponsor
{System.Data.Entity.DynamicProxies.SponsorOrganizations_F2A27693F33AFF36C814F6FFA2CE63AD656938244F599B7D1AB2ED80CC26EF9A}
[System.Data.Entity.DynamicProxies.SponsorOrganizations_F2A27693F33AFF36C814F6FFA2CE63AD656938244F599B7D1AB2ED80CC26EF9A]: {System.Data.Entity.DynamicProxies.SponsorOrganizations_F2A27693F33AFF36C814F6FFA2CE63AD656938244F599B7D1AB2ED80CC26EF9A}
City: null
Country: null
Enabled: true
FacebookUrl: "https://www.facebook.com/sponsor1"
Id: 1
LogoSrc: "Sponsor1.jpg"
Name: "Sponsor1"
OwnerId: "1d720c20-a508-4880-a5e6-80af5f2f8caf"
OwnerName: "Sponsor Primary"
ProfilePictureUrl: "sponsorprofilepicture/Sponsor1.jpg"
SponsorServiceCategory: Count = 11
State: null
TwitterUrl: "https://twitter.com/sponsor1"
Users: Count = 0
WebsiteUrl: "http://www.sponsor1.com"
我如何获得 Name
属性(property)具体来自db.SponsorOrganizations.Find(user.SponsorOrgId)
进入user.Sponsor
?
最佳答案
IdentityModels.cs 中的外键属性未正确命名。外键属性必须与导航属性的名称匹配,否则您需要使用 [ForeignKey]
属性。
应该是:
[GridColumn(Title = "Org.", SortEnabled = true, Width = "100")]
public int? OrganizationId { get; set; }
[NotMappedColumn]
public virtual MemberOrganizations Organization { get; set; }
或:
[GridColumn(Title = "Org.", SortEnabled = true, Width = "100")]
public int? MemberOrgId { get; set; }
[ForeignKey("MemberOrgId")
[NotMappedColumn]
public virtual MemberOrganizations Organization { get; set; }
或:
[ForeignKey("Organization")
[GridColumn(Title = "Org.", SortEnabled = true, Width = "100")]
public int? MemberOrgId { get; set; }
[NotMappedColumn]
public virtual MemberOrganizations Organization { get; set; }
SponsorOrganizations 也可能存在一些问题,因为您已将外键标记为未映射。
关于c# - MVC5 : Object reference not set to an instance of an object?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24193299/
我遵循了一本名为“Sitepoint Full Stack Javascript with MEAN”的书中的教程,我刚刚完成了第 6 章,应该已经创建了一个带有“数据库”的“服务器”。数据库只不过是
在 Jquery 中,我创建两个数组,一个嵌入另一个数组,就像这样...... arrayOne = [{name:'a',value:1}, {name:'b',value:2}] var arra
这个问题在这里已经有了答案: What is the explanation for these bizarre JavaScript behaviours mentioned in the 'Wa
我被放在别人的代码上,有一个类用作其他组件的基础。当我尝试 ng serve --aot(或 build --prod)时,我得到以下信息。 @Component({ ...,
我正在测试一些代码,并使用数据创建了一个 json 文件。 问题是我在警报中收到“[object Object],[object Object]”。没有数据。 我做错了什么? 这是代码:
我想打印 [object Object],[object Object] 以明智地 "[[{ 'x': '1', 'y': '0' }, { 'x': '2', 'y': '1' }]]"; 在 ja
我有一个功能 View ,我正在尝试以特殊格式的方式输出。但我无法让列表功能正常工作。 我得到的唯一返回是[object Object][object Object] [object Object]
在使用优秀的 Sim.js 和 Three.js 库处理 WebGL 项目时,我偶然发现了下一个问题: 一路走来,它使用了 THREE.Ray 的下一个构造函数: var ray = new THRE
我正在使用 Material UI 进行多重选择。这是我的代码。 {listStates.map(col => (
我的代码使用ajax: $("#keyword").keyup(function() { var keyword = $("#keyword").val(); if (keyword.
我遇到了下一个错误,无法理解如何解决它。 Can't resolve all parameters for AuthenticationService: ([object Object], ?, [o
我正在尝试创建一个显示动态复选框的表单,至少应选中其中一个才能继续。我还需要获取一组选中的复选框。 这是组件的代码: import { Component, OnInit } from '@angul
我正在开发 NodeJs 应用程序,它是博客应用程序。我使用了快速验证器,我尝试在 UI 端使用快速闪存消息将帖子保存在数据库中之前使用闪存消息验证数据,我成功地将数据保存在数据库中,但在提交表单后消
我知道有些人问了同样的问题并得到了解答。我已经查看了所有这些,但仍然无法解决我的问题。我有一个 jquery snipet,它将值发送到处理程序,处理程序处理来自 JS 的值并将数据作为 JSON 数
我继承了一个非常草率的项目,我的任务是解释为什么它不好。我注意到他们在整个代码中都进行了这样的比较 (IQueryable).FirstOrDefault(x => x.Facility == fac
我只是在删除数组中的对象时偶然发现了这一点。 代码如下: friends = []; friends.push( { a: 'Nexus', b: 'Muffi
这两个代码片段有什么区别: object = nil; [object release] 对比 [object release]; object = nil; 哪个是最佳实践? 最佳答案 object
我应该为其他人将从中继承的第一个父对象传递哪个参数,哪个参数更有效 Object.create(Object.prototype) Object.create(Object) Object.creat
我在不同的对象上安排不同的选择器 [self performSelector:@selector(doSmth) withObject:objectA afterDelay:1]; [self per
NSLog(@"%p", &object); 和 NSLog(@"%p", object); 有什么区别? 两者似乎都打印出一个内存地址,但我不确定哪个是对象的实际内存地址。 最佳答案 这就是我喜欢的
我是一名优秀的程序员,十分优秀!