2015-10-14 2 views
1

im new in asp.net mvc. Я смотрю учебник, и он использует webmatrix. Я попытался добавить столбец с именем «IDViewer» в таблицу «UserProfile» в моей базе данных, созданной webmatrix. но затем, когда я попытался вставить какое-то значение, он возвращает мне ошибку «Недопустимое имя столбца« Длина ».» но я не объявил имя столбца «Длина» в моем коде. проверьте мои коды и изображения. thank youНедопустимое имя столбца 'Длина' 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

3-й параметр должен быть словарем. Попробуйте заменить 'registerdata.IDViewer' на' new {IDViewer = registerdata.IDViewer} ' –

ответ

1

С documentation, то третий параметр представляет собой словарь

propertyValues ​​

Тип: System.Object

(необязательно) словарь, который содержит дополнительные атрибуты пользователя. Значение по умолчанию - null.

таким образом метод должен быть

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

еще раз спасибо за шаг для получения информации и обучения. –

Смежные вопросы