2015-10-14 39 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'再次感謝您的信息和學習。 –