Я создал модель с приложением MVC 5 Inte rnet, а затем добавил в ADO. Net Модель данных объекта> Код сначала из базы данных. Я добавил внешний ключ во вновь созданную таблицу со ссылкой на идентификатор в таблице AspNetUsers.
Я создал контроллер по умолчанию, затем View с Entity Framework, и все отображается нормально.
Имя пользователя отображалось в раскрывающемся списке с кодом ниже
@Html.DropDownList("UserID", null, htmlAttributes: new { @class = "form-control" })
Поэтому измените его на приведенное ниже, чтобы оно было доступно только для чтения
<div class="form-group">
@Html.LabelFor(model => model.UserID, "Username", htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DisplayFor(model => model.UserID)
@Html.HiddenFor(model => model.UserID)
</div>
</div>
Использовал ответ в этой теме в качестве руководства Показывать значение EditorFor () как доступное только для чтения при MVC Просмотр? Я использую VS 2013 MVC 5 плюс все обновления. Как я могу отобразить имя пользователя? Нужно ли настроить контроллер с помощью нового метода? (У меня есть UserId выше, так как я надеялся, что какое-то значение будет отображаться в исправленном коде, чтобы я мог сузить суть проблемы)
По запросу
public partial class BaseContext : DbContext
{
public BaseContext() : base("name=BaseContext") {}
public virtual DbSet<C__MigrationHistory> C__MigrationHistory { get; set; }
public virtual DbSet<AspNetRole> AspNetRoles { get; set; }
public virtual DbSet<AspNetUserClaim> AspNetUserClaims { get; set; }
public virtual DbSet<AspNetUserLogin> AspNetUserLogins { get; set; }
public virtual DbSet<AspNetUser> AspNetUsers { get; set; }
public virtual DbSet<Customer> Customers { get; set; }
public virtual DbSet<Organisation> Organisations { get; set; }
public virtual DbSet<InternationalOffice> InternationalOffices { get; set; }
public virtual DbSet<NewsType> NewsTypes { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<AspNetRole>()
.HasMany(e => e.AspNetUsers)
.WithMany(e => e.AspNetRoles)
.Map(m => m.ToTable("AspNetUserRoles").MapLeftKey("RoleId").MapRightKey("UserId"));
modelBuilder.Entity<AspNetUser>()
.HasMany(e => e.AspNetUserClaims)
.WithRequired(e => e.AspNetUser)
.HasForeignKey(e => e.UserId);
modelBuilder.Entity<AspNetUser>()
.HasMany(e => e.AspNetUserLogins)
.WithRequired(e => e.AspNetUser)
.HasForeignKey(e => e.UserId);
modelBuilder.Entity<AspNetUser>()
.HasMany(e => e.Customers)
.WithRequired(e => e.AspNetUser)
.HasForeignKey(e => e.UserID)
.WillCascadeOnDelete(false);
modelBuilder.Entity<AspNetUser>()
.HasMany(e => e.Organisations)
.WithRequired(e => e.AspNetUser)
.HasForeignKey(e => e.UserID)
.WillCascadeOnDelete(false);
modelBuilder.Entity<Organisation>()
.HasMany(e => e.Customers)
.WithRequired(e => e.Organisation)
.WillCascadeOnDelete(false);
modelBuilder.Entity<Organisation>()
.HasMany(e => e.InternationalOffices)
.WithRequired(e => e.Organisation)
.WillCascadeOnDelete(false);
modelBuilder.Entity<NewsType>()
.HasMany(e => e.Customers)
.WithRequired(e => e.NewsType)
.WillCascadeOnDelete(false);
}
}