相关疑难解决方法(0)

将System.ComponentModel.DataAnnotations与Entity Framework 4.0一起使用

我正在使用MVC3,并使用Entity Framework 4.0实体作为我的模型.到目前为止,就使用它作为模型而言,一切都很有效(所有的crud操作/页面生成开箱即用).我想知道,你如何获得与手动生成模型时相同的强大标签和验证信息?

这是我的意思的一个例子.这是一个由MVC3示例项目生成的类:

public class LogOnModel
{
    [Required]
    [Display(Name = "User name")]
    public string UserName { get; set; }

    [Required]
    [DataType(DataType.Password)]
    [Display(Name = "Password")]
    public string Password { get; set; }

    [Display(Name = "Remember me?")]
    public bool RememberMe { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

通过上面的示例,您可以指定在字段的标签中显示的内容(显示)以及要使用的字段类型(密码).但是,当我尝试使用实体框架并将其推送到下面的视图时,我看到自动生成的标签只是字段名称,而不是我希望用户看到/必须阅读的内容:

@using (Html.BeginForm()) {
    @Html.ValidationSummary(true)
    <fieldset>
        <legend>Person</legend>

        <div class="editor-label">
            @Html.LabelFor(model => model.FirstName)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.FirstName)
            @Html.ValidationMessageFor(model => model.FirstName)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.MiddleName)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.MiddleName)
            @Html.ValidationMessageFor(model => model.MiddleName) …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc entity-framework-4 c#-4.0 asp.net-mvc-3

51
推荐指数
1
解决办法
2万
查看次数

向POCO类添加方法

我有以下设置:MVC>服务>存储库.现在我想让用户能够为文档添加注释.只有与文档关联的用户(作为所有者或审阅者)才能添加Notes,因此在我的NoteService中,我执行以下操作以确保用户对所选文档具有权限:

public Note GetNewNote(int documentID)
    {
        if (!userHasAccess(Thread.CurrentPrincipal.Identity.Name))
            throw new BusinessLogicException();

        // Other stuff here...
    }
Run Code Online (Sandbox Code Playgroud)

我的问题是,我应该在哪里定义userHasAccess方法?在NoteService中没有任何意义,因为它正在检查Document.我可以在DocumentService中定义它,但是然后NoteService将需要访问它,这似乎引入了更多的耦合.

对我来说,在Document POCO本身上定义它然后调用document.userHasAccess(...)更有意义.这是一个好的做法还是域名POCO应限于简单的属性?我担心这确实是验证的一部分,通过将方法放在POCO中,我将分离Service和POCO之间的验证.

我要确保的是我的应用程序易于维护和测试.关于如何解决这个问题的任何建议都将非常感谢!

validation asp.net-mvc poco asp.net-mvc-3

6
推荐指数
1
解决办法
2223
查看次数