【发布时间】:2017-10-26 04:42:24
【问题描述】:
多年来,我使用 Webforms 开发了 ASP.Net 应用程序,并且我已经完成了一些 MVC 应用程序,但从未真正完全使用过该框架,这是由于大多数项目的时间限制。虽然,我使用的是 MVC 结构,但我仍在使用旧方法,即不使用 @Html.BeginForm 等,而是使用标签等。
我最近刚刚开始另一个项目,但这次我想使用正确的 MVC 功能。
我一直在阅读设计模式中的最佳实践。在我的解决方案中,我有 MVC 应用程序、测试和数据(这是一个连接到数据库的类库)的项目。我没有使用实体框架,但我仍然想知道为视图模型创建类的正确方法。
在我的数据库类中,我有一个名为 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; }
}
我想在视图上呈现的字段是名称、电子邮件和 RoleId 的下拉列表。那么对于视图上的模型,它不必与我的数据类相同是否正确?是否低于正确的模型视图类?
public class UserModel
{
public Data.User User { get; set; }
public IEnumerable<KeyValuePair<long,string>> RoleList { get; set; }
}
询问的原因是,最初,我总是假设 Model 类应该与我在 Google 中读到的 Data 类相同,但在大多数情况下并非如此。这是正确的吗?
这是视图的正确实现吗?
@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--")
}
【问题讨论】:
标签: asp.net asp.net-mvc model