gpt4 book ai didi

c# - View 中具有自定义模型属性的 MVC3 默认成员属性(使用 ModelView?)

转载 作者:行者123 更新时间:2023-11-30 12:48:59 26 4
gpt4 key购买 nike

我已经开始学习 MVC3 开发,但遇到了一些障碍。在我的项目中,我已将默认的 aspnet_ 成员表移动到单独的 SQL Server 2008 Express 数据库中。然后我添加了我自己的表来保存额外的配置文件数据。我现在想构建一个 View ,它将列出用户名(来自 aspnet_Users)、电子邮件地址(来自 aspnet_Membership)、名字和姓氏(来自自定义构建表 UserDetails,用户 ID 作为 PK 和 FK 到 aspnet_Users)和用户角色( aspnet_UsersInRoles 和 aspnet_Roles)。

到目前为止,为了从我的数据库中读取和写入,我已经使用 dbcontext 类为每个自定义构建的表构建了模型:

    public class UserDetail
{

[Key]
public Guid UserId { get; set; }

public string FirstName { get; set; }

public string LastName { get; set; }

public string Address { get; set; }

public string City { get; set; }

public string State { get; set; }

public string Zip { get; set; }

public string Phone { get; set; }

public DateTime DateUpdated { get; set; }
}

public class UserLinkToken
{
[Key]
public Guid UserId { get; set; }

public string LinkToken { get; set; }

public DateTime DateUpdated { get; set; }
}

public class ProShotDB : DbContext
{
public DbSet<UserDetail> UserDetails { get; set; }
public DbSet<UserLinkToken> UserLinkTokens { get; set; }
}

我不得不将我的表命名为“UserDetails”和“UserLinkTokens”,以便我的应用程序写入和更新我的数据库,当模型和 dbcontext 的名称与我的数据库和表名称不匹配时,应用程序最终会创建另一个带有表的数据库并将数据写入那里。

据我所知,发送一个对象以使用 aspnet_ 表中的属性和自定义表中的属性进行查看,我将想要构建一个 ModelView。在阅读了大量模型 View 示例后,我仍然不清楚它应该如何查找我的应用程序。

谁能给我一个模型 View 的示例,我可以使用它来显示数据行列表并在给定用户 ID 的情况下更新模型 View 中引用的所有相应表列?

例如,假设我只想查看所有名字(UserDetails 表)及其相应的电子邮件(aspnet_Membership)。

我的最终目标是一个 View ,该 View 将显示具有分配给他们的角色的用户。列出的每个用户都有一个链接,该链接将指向一个 Controller ,如果他们当前不属于该角色,该 Controller 会将他们分配为管理员,或者如果他们当前是管理员,则删除管理员角色。

很抱歉,如果此类问题之前已在其他问题中得到回答。我已经阅读了其中的一些内容,觉得它们可能应该回答了我的问题,但似乎没有一个是完全匹配的。我的困惑很可能源于没有完全理解我的应用程序如何连接到我的数据库。我有点理解我的模型代表一个表的一行数据,dbcontext 采用一组这些数据行模型并将其连接到数据库中的表 (dbset<(datarow/model object)> (table of datarows/一组模型对象))。由于我没有看到 aspnet_ 表/模型对象的 dbcontext 类,所以我对如何检索、更新或写入这些表中的数据没有很好的概念。

感谢您帮助消除我对它如何工作的无知,或者给我一个简单的例子来说明如何完成我需要的事情。

最佳答案

首先,它称为 View 模型,而不是模型 View 。 View 模型只是一个为 View 目的而定制的类。它通常只包含该 View 所需的数据,并包含诸如数据注释之类的内容来处理验证和表示。

因此,您只需创建一个模型,其中包含您希望在 View 中显示的所有数据。这就是构建 View 模型的全部内容。

所以你的 View 模型就是

public class MyViewModel {
public string FirstName {get;set;}
public string Email {get;set;}
}

那么在你看来,你只要做这样的事情:

@model MyViewModel

@using(Html.BeginForm()) {
@Html.EditorForModel()
<input type="submit" />
}

在您的 Controller 中(或者更好的是,在业务层中)您只需执行查询以检索用户名和电子邮件,然后将查询结果中的值复制到 View 模型中。

当你更新数据时,你做相反的事情。这确实是一个太大的概念,尽管无法在这样的帖子中进行讨论。您真的应该查看示例代码,例如 MVC Music Store 或 Nerd Dinner。

要牢记的重要事项。成员(member)资格是一个完全独立于您的其他表格的系统。您必须单独检索它们,并单独更新它们。使用成员(member) API 更新成员(member)电子邮件或其他详细信息,并使用您自己的表格更新您的数据。

关于c# - View 中具有自定义模型属性的 MVC3 默认成员属性(使用 ModelView?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13003615/

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