列名称无效 'Length' webmatrix

Invalid column name 'Length' webmatrix

我是 asp.net mvc 中的新成员。我看了一个教程,他正在使用 webmatrix。我试图在 webmatrix 创建的数据库中添加名为 "IDViewer" in table "UserProfile" 的列。但是,当我尝试插入一些值时,它 returns 我出现了 "Invalid column name 'Length'." 错误,但我没有在我的代码中声明列名 "Length"。请检查我的代码和图像。谢谢

图片Link 在这里。请看一下

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);
}

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

propertyValues

Type: System.Object

(Optional) A dictionary that contains additional user attributes. The default is null.

所以你的方法需要

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