gpt4 book ai didi

asp.net - 使用 MySql 和 MVC 3 上的成员(member)资格向注册表单添加更多字段

转载 作者:行者123 更新时间:2023-12-02 18:27:15 26 4
gpt4 key购买 nike

我创建了一个基于 asp.net MVC 3 和 MySql 的网站我获得了使用 MySQL .NET 连接器的成员(member)资格因此,使用 mvc 3 新项目的默认应用程序,我有一个工作注册表单和一个工作登录表单

但是...我如何向注册表单添加更多字段?我知道如何将它们添加到我的模型和页面中。但是我如何让成员(member)保留用户无法获取的新数据?我必须自己在数据库中创建列吗?或者成员(member)是否知道如何以某种方式自动创建它们?

我只需要另外 3 个字段进行注册...

谢谢

最佳答案

查看您的 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; }
}

模型中有新属性后,您需要更新 View 。在 Views > Account > Register.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>

完成后,您需要更新注册逻辑以使用新属性。转到AccountController并找到

    [HttpPost]
public ActionResult Register(RegisterModel model)
{
if (ModelState.IsValid)
{
// Attempt to register the user
MembershipCreateStatus createStatus;
Membership.CreateUser(model.UserName, model.Password, model.Email, null, null, true, null, out createStatus);

if (createStatus == MembershipCreateStatus.Success)
{
FormsAuthentication.SetAuthCookie(model.UserName, false /* createPersistentCookie */);
//
// this would be a good place for you to put your code to do something with model.Nickname
//
return RedirectToAction("Index", "Home");
}
else
{
ModelState.AddModelError("", ErrorCodeToString(createStatus));
}
}

// If we got this far, something failed, redisplay form
return View(model);
}

如果您想将该信息保留到用户 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>

然后在你的代码中 - 你可以这样做

var userProfile = ProfileBase.Create(model.UserName);

在个人资料中获取/设置您的属性

关于asp.net - 使用 MySql 和 MVC 3 上的成员(member)资格向注册表单添加更多字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8369055/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com