gpt4 book ai didi

asp.net - 了解 MVC 中的模型类与数据类

转载 作者:行者123 更新时间:2023-12-04 02:04:56 25 4
gpt4 key购买 nike

多年来,我一直使用 Webforms 开发 ASP.Net 应用程序,也做过一些 MVC 应用程序,但从未真正完整地使用过该框架,这是由于大多数项目的时间限制所致。虽然,我使用的是 MVC 结构,但我仍在使用旧方法,即不使用 @Html.BeginForm 等,而是使用标签等。

我最近刚刚开始另一个项目,但这次我想使用正确的 MVC 功能。

我一直在阅读设计模式的最佳实践。在我的解决方案中,我有用于 MVC 应用程序、测试和数据(这是一个连接到数据库的类库)的项目。我没有使用 Entity Framework ,但我仍然想知道为 View 模型创建类的正确方法。

在我的数据库类中,我有一个类调用 Users

public class User
{
public long Id { get; set; }

[Required]
public string Name { get; set; }

[Required]
public string Email { get; set; }

[Required]
public long RoleId { get; set; }
}

我想在 View 上呈现的字段是名称、电子邮件和 RoleId 的下拉列表。那么对于 View 上的模型,它不必与我的数据类相同是否正确?下面是正确的模型 View 类吗?

public class UserModel
{
public Data.User User { get; set; }

public IEnumerable<KeyValuePair<long,string>> RoleList { get; set; }
}

问的原因是,最初,我总是假设模型类应该与我在谷歌上读到的数据类相同,但在大多数情况下它不是。这是正确的吗?

这是 View 的正确实现吗?

@using (Html.BeginForm())
{
@Html.LabelFor(m=>m.User.Name)
@Html.TextAreaFor(m=>m.User.Name)
<br/>
@Html.LabelFor(m => m.User.Email)
@Html.TextAreaFor(m => m.User.Email)
<br />
@Html.LabelFor(m => m.User.RoleId)
@Html.DropDownListFor(m => m.User.RoleId, new SelectList(Model.RoleList,
"Value", "Key"),"--Please Select--")
}

最佳答案

模型类代表应用程序的业务方面,因为在您的情况下,您有一个 UserModel 类,该类包含用户信息和具有角色的集合,数据模型 特定于存储库,即您的数据库表,因此数据模型通常代表我们拥有的数据库表。希望它有意义。

你也可以引用下面的帖子,问的和我想的类似:

https://stackoverflow.com/a/2446051/1875256

关于asp.net - 了解 MVC 中的模型类与数据类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44182066/

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