我正在尝试将MVC 4添加到现成的成员资格中。
public ActionResult Register(RegisterModel model)
{
if (ModelState.IsValid)
{
// Attempt to register the user
try
{
WebSecurity.CreateUserAndAccount(model.UserName, model.Password, model.Mobile);
//I added model.Mobile
WebSecurity.Login(model.UserName, model.Password);
return RedirectToAction("Index", "Home");
}
catch (MembershipCreateUserException e)
{
ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
}
}
}
我改变了模特
public class RegisterModel
{
// Username and password methods
public string Mobile { get; set; }
}
我还将其添加到
UserProfile
模型中。我收到SqlException,但看不到连接。似乎是一个如此简单的错误。 DB设置为Nvarchar(MAX)
,以尝试避免此错误。Invalid column name 'Length'
最佳答案
在您的评论中,似乎您使用了
WebSecurity.CreateUserAndAccount(model.UserName, model.Password, model.Mobile);
如果您查看msdn,
public static string CreateUserAndAccount(
string userName,
string password,
Object propertyValues,
bool requireConfirmationToken
)
propertyValues在哪里
属性值
类型:System.Object
(可选)包含其他用户属性的字典。默认为空。
因此,在使用该方法时,会将model.Mobile作为
propertyValues
参数发送,但肯定不是!因此,您应该在可以使用移动参数的地方创建自己的
CreateUserAndAccount
重载(或新方法)。关于c# - 无效的列名“长度”已编辑MVC 4成员资格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14720506/