Asp.net 使用MySql和MVC 3上的成员资格向注册表添加更多字段
我创建了一个基于asp.NETMVC3和MySql的网站 我获得了MySQL.NET连接器的会员资格 因此,对于MVC3新项目的默认应用程序,我有一个工作注册表单和一个工作登录表单 但是。。。如何向注册表中添加更多字段? 我知道如何将它们添加到我的模型和页面中。。但是我如何让会员保留这些新的数据呢? 我必须自己制作数据库中的列吗?或者会员是否知道如何以某种方式自动创建它们 我只想再注册3个字段Asp.net 使用MySql和MVC 3上的成员资格向注册表添加更多字段,asp.net,asp.net-mvc,asp.net-mvc-3,asp.net-membership,mysql-connector,Asp.net,Asp.net Mvc,Asp.net Mvc 3,Asp.net Membership,Mysql Connector,我创建了一个基于asp.NETMVC3和MySql的网站 我获得了MySQL.NET连接器的会员资格 因此,对于MVC3新项目的默认应用程序,我有一个工作注册表单和一个工作登录表单 但是。。。如何向注册表中添加更多字段? 我知道如何将它们添加到我的模型和页面中。。但是我如何让会员保留这些新的数据呢? 我必须自己制作数据库中的列吗?或者会员是否知道如何以某种方式自动创建它们 我只想再注册3个字段 谢谢请查看您的AccountModels.cs文件。它包含 public class Register
谢谢请查看您的AccountModels.cs文件。它包含
public class RegisterModel
{
// User name, Email Adress, Password, Password confirmation already there
// you can add something like below
[Required]
[Display(Name = "Nickname")]
public string Nickname { get; set; }
}
一旦模型中有了新特性,就需要更新视图。在视图>帐户>注册表.cshtml中,您应该添加
<div class="editor-label">
@Html.LabelFor(m => m.Nickname )
</div>
<div class="editor-field">
@Html.PasswordFor(m => m.Nickname )
@Html.ValidationMessageFor(m => m.Nickname )
</div>
如果要将该信息持久化到用户ASP.NET配置文件中,则需要在Web.config中提供该信息
<profile>
<providers>
<clear />
<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" />
</providers>
<properties>
<add name="Nickname" defaultValue="False" type="System.String" />
</properties>
</profile>
要在配置文件中获取/设置属性,我建议您使用此解决方案
UserDetails
用户ID的字段
UserId
检索这些字段。您还可以实现自己的MembershipProvider
,并添加一个类似GetUserDetail()
的方法,该方法返回一个包含额外字段的对象
这是基于ASP.NET的一篇官方文章:假设您想为年龄和性别创建字段。首先,您可以在相应的注册视图中创建注册的UI。这意味着为年龄和性别创建输入字段。然后在AccountController中转到Register视图,并在ApplicationUser对象(已声明)中添加年龄和性别字段。就这样
关于这个的详细信息可以找到你写了这个://这将是一个很好的地方,你可以把你的代码放在模型上做一些事情。昵称,但那将是什么代码?。。。另一个数据库调用?这并没有解决我的问题,我如何才能使会员做到这一点。我读了一些关于档案库的东西。是吗?。。是2调用数据库的唯一方法吗?这取决于您希望如何处理数据持久性部分。您可以使用配置文件(有些人认为不够灵活),也可以初始化DataContext。执行
userProfile.SetPropertyValue(“昵称”、“我的昵称”)后,请参阅更新的回答
douserProfile.Save()
用于持久性。在注册过程中,在何处编写代码以在UserDetails中插入值?因为我在Account/Register.aspx.cs中没有看到任何插入代码
<profile>
<providers>
<clear />
<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" />
</providers>
<properties>
<add name="Nickname" defaultValue="False" type="System.String" />
</properties>
</profile>
var userProfile = ProfileBase.Create(model.UserName);