- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在开发过程中,我遇到了一个有趣的问题。现在,我使用数据库不可知的工作层从ASP MVC 4 Web应用程序中的实际数据库依赖中抽象出对数据的访问。
每个实现工作单元接口(interface)的数据库项目都知道我的业务模型(直接进出数据库的模型)。我不太确定我对这种方法的感觉,但这不是我要问的问题。
我是否应该使用诸如AutoMapper之类的解决方案来将我的业务模型与域模型进行相互转换?将模型传递给 View 并用于不应该访问数据库字段(即ID)的任何工作?
例如,考虑在我的BusinessModels项目中,我有以下类
BusinessModels
/UserAccounts/
User.cs
- ID
- Username
- HashedPassword
- Salt
UserSettings.cs
- IsSubscribedToNewsletter
- AllowDirectEmails
MyProject
/DomainModels/
User.cs
- Username
- HashedPassword
- Salt
- IsSubscribedToNewsletter
- AllowDirectEmails
最佳答案
您可以将 View 模型用于两种不同的事物:
public class EditUserModel
{
public User User {get;set;}
public SelectList UserGroups {get;set;}
}
[HttpPost]
public ActionResult Edit(EditUserModel userModel)
Html.TextBoxFor(m => m.User.Name)
之类的东西,仅当post操作的参数具有相同的结构时,Model Binder才能够设置User属性的Name属性。 IE。如果get的 View 模型具有以下结构:
public ChangePasswordModel
{
public string Password {get;set;}
public string PasswordConfirmation {get;set;}
// extra properties, like the list of user groups, the user data...
}
public PostedChanegPasswordModel
{
public User User {get;set;}
}
Html.TextBoxFor(m => m.EditedUser.Name)
呈现的输入内容不会绑定(bind)到PostEditViewModel的
User.Name
。
public EditUserModel : PostedEditUserModel
{
// extra properties, like the list of user groups
}
关于c# - 我应该如何将我的商业模式与我的观点联系起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20495136/
Closed. This question is opinion-based。它当前不接受答案。
我有一个项目需要在工作和在家中使用两台不同的计算机进行。 我需要能够在两台计算机上都处理代码,所以问题有两个。 共享代码 共享工作空间。 用svn 1很简单;但是我感到很讨厌将损坏的代码提交给svn,
我正在尝试在 Eclipse 中实现 coreNLP 情绪分析器。得到错误: Unable to resolve "edu/stanford/nlp/models/lexparser/englishP
我有一个输入框: 如果我在输入字段中输入 .75 ,则应在 .75 之前自动添加 0 ,使其变为 0.75 此外,如果我输入 1.3 那么它应该变成 1.30 我已经尝试过: echo "
我有一个带有以下行的父组件 根据上下文,它呈现路由器配置中定义的两个组件之一 path: 'parent', component: Parent, children: [ {
我安装了最新的 angular-ui-select (v0.12) 和 angular v1.2.27。我的页面无法加载。我得到: expected expression, got . (a poin
我是一名优秀的程序员,十分优秀!