MVC 3实体模型-添加方法? - c#

将方法添加到实体模型的最佳方法是什么?

例如,我有一个User模型,我想在该类中添加一个对密码进行哈希处理的方法。

我试图制作一个扩展UserHelperUser类,但这似乎适得其反。

参考方案

如果EF类还不是局部类,则可以修改T4模板以使其成为局部类。

partial class是在多个文件中定义的类。在编译时,编译器从所有文件构建类定义。局部类最常用于将代码添加到通过自动化工具生成的类中(并且通常在每次运行生成时都会销毁),例如EF的T4模板。

如上所述,使用局部类,然后可以在单独的文件中将方法添加到您要“扩展”的类中。

说完所有这些,您还可以考虑extension methods。

扩展方法是一种巧妙的语法/编译器技巧,用于扩展您无法修改的类型的功能(例如,您不拥有代码或无法对其进行子类化)。通过编写扩展方法,您基本上是在编写静态方法,该方法将被调用,就好像它是您刚刚扩展的类型的实例方法一样。

我认为这两个选项几乎都一样好,但是我倾向于局部类方法。

ASP.NET MVC 5自定义登录,无需脚手架,数据库优先 - c#

我对asp.net和mvc还是很陌生,所以我正在努力学习尽可能多的知识...为此,我从头开始编写博客网站,但是我对身份验证和授权有些困惑。由于我倾向于不真正使用任何脚手架的东西,所以我首先要使用数据库,所以不希望asp.net身份为我创建表。我对散列和加盐密码很酷,并对照数据库检查用户,我遇到的麻烦是将用户设置为登录状态并检查他们应该能够访问什么。我真的很想…

ASP.NET MVC ExecuteResult与ActionResult - c#

我见过它用来向响应添加标头,然后返回文件进行流传输。public override void ExecuteResult(ControllerContext context) { ... response.AddHeader("Accept-Ranges", "bytes"); response.AddHeader(&…

ASP.NET MVC Core 3.0 API将枚举序列化为字符串 - c#

如何在ASP.NET MVC Core 3.0中将Enum字段序列化为String而不是Int?我不能用旧的方式做。services.AddMvc().AddJsonOptions(opts => { opts.JsonSerializerOptions.Converters.Add(new StringEnumConverter()); }) 我收到…

弹出表单中的ajax数据发布未命中控制器方法ASP.NET MVC - c#

我有一个弹出表单AddorEdit.cshtml,从index.cshtml页面调用。表单正在打开,但无法将数据发布到控制器方法。索引页// index.cshtml // <a class="btn btn-success" style="margin-bottom:10px;" onclick="P…

MVC C#TempData - c#

有人可以解释一下MVC中TempData的目的。我了解它的行为类似于ViewBag,但除此之外它还有什么作用。 参考方案 TempData应该是一个短暂的实例,您应该 仅在当前和后续请求中使用它!以来 TempData以这种方式工作,您需要确定下一步 要求,并且重定向到另一个视图是您唯一的时间 可以保证这一点。因此,唯一使用TempData的方案 在重定向时…