2015-10-14 61 views
1

即时通讯新的在asp.net mvc。我看了一个教程,他正在使用webmatrix。我试图在webmatrix创建的数据库的表“UserProfile”中添加名为“IDViewer”的列。但是,然后,当我试图插入一些值时,它返回了一个错误“无效的列名'长度'。”但我没有在我的代码中声明列名“长度”。请检查我的代码和图像。谢谢无效的列名'长度'webmatrix

图片链接在这里。请看看

The error

My database, i added column named IDViewer

public class Register 
{ 
    [Required(ErrorMessage = "Please provide password", AllowEmptyStrings = false)] 
    public string Username { get; set; } 
    [Required(ErrorMessage = "Please provide password", AllowEmptyStrings = false)] 
    [DataType(System.ComponentModel.DataAnnotations.DataType.Password)] 
    [StringLength(50, MinimumLength = 8, ErrorMessage = "Password must be 8 char long.")] 
    public string Password { get; set; } 
    public string IDViewer { get; set; } 
} 

@using (Html.BeginForm()) 
{ 
    @Html.AntiForgeryToken() 
    @Html.ValidationSummary("", new { @style = "color: red" }) 
    <label>Username</label> 
    @Html.TextBoxFor(m => m.Username, new { @class = "form-control" }) 
    <label>Password</label> 
    @Html.PasswordFor(m => m.Password, new { @class = "form-control" }) 
    <label>Student ID</label> 
    @Html.TextBoxFor(m => m.IDViewer, new { @class = "form-control" }) 
    @Html.DropDownList("role",roles,"Select Account Type") 
    <button class="btn btn-primary">Register</button> 
} 

[HttpPost] 
[ValidateAntiForgeryToken] 
public ActionResult Register(Register registerdata, string role) 
{ 
    if(ModelState.IsValid) 
    { 
     try 
     { 
      WebSecurity.CreateUserAndAccount(registerdata.Username, registerdata.Password, registerdata.IDViewer); 
      Roles.AddUserToRole(registerdata.Username,role); 
      return RedirectToAction("Index", "Home"); 
     } 
     catch (MembershipCreateUserException) 
     { 
      ModelState.AddModelError("", "Sorry the username already exists");  
      return View(registerdata); 
     } 
    } 
    ModelState.AddModelError("","Data invalid"); 
    return View(registerdata); 
} 
+0

第三个参数必须是一个字典。尝试用'new {IDViewer = registerdata.IDViewer}' –

回答

1

documentation,第三个参数是一个字典

propertyValues

类型:System.Object

(可选)包含附加的用户属性词典。缺省值为空。

所以你的方法必须是

WebSecurity.CreateUserAndAccount(registerdata.Username, 
    registerdata.Password, new { IDViewer = registerdata.IDViewer }); 
+0

替换'registerdata.IDViewer'再次感谢您的信息和学习。 –