0

Я использую шаблон ASP.NET mvc 4 для создания своего приложения.RadioButtonFor save Null in DB [ASP.NET MVC 4]

Я создал UserType как строку в поле UserProfile и выполнил миграцию для обновления базы данных. Это верно.

Моя проблема в том, что когда я зарегистрирую нового пользователя в режиме просмотра реестра, приложение сохранит все поля, но UserType, оно сохраняет значение null, как я могу его решить? Я прочитал несколько тем с похожими вопросами, но я не знаю, как будет работать на меня. Мой код ниже:

С помощью @StephenMuecke, я здесь разместить код обновляется, проблема еще не исправлено:

//Models 
[Table("UserProfile")] 
     public class UserProfile 
     { 
      [Key] 
      [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] 
      public int UserId { get; set; } 
      public string UserName { get; set; } 
      public string UserType { get; set; } //flag de tipo usuário musico ou ouvinte 


     } 

public class RegisterModel 
    { 

     [Required] 
     [Display(Name = "User name")] 
     public string UserName { get; set; } 

     [Required] 
     [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)] 
     [DataType(DataType.Password)] 
     [Display(Name = "Password")] 
     public string Password { get; set; } 

     [DataType(DataType.Password)] 
     [Display(Name = "Confirm password")] 
     [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")] 
     public string ConfirmPassword { get; set; } 

     [Required] 
     [Display(Name = "Tipo de Usuario")] 
     public string UserType { get; set; } 


    } 

//Controller 
     // GET: /Account/Register 

     [AllowAnonymous] 
     public ActionResult Register() 
     { 
      return View(); 
     } 

     // 
     // POST: /Account/Register 

     [HttpPost] 
     [AllowAnonymous] 
     [ValidateAntiForgeryToken] 
     public ActionResult Register(RegisterModel model) 
     { 
      if (ModelState.IsValid) 
      { 
       // Attempt to register the user 
       try 
       { 
        var user = new UserProfile() { UserName = model.UserName, UserType = model.UserType }; 

        WebSecurity.CreateUserAndAccount(model.UserName, model.Password); 
        WebSecurity.Login(model.UserName, model.Password); 
        return RedirectToAction("Index", "Home"); 

       } 
       catch (MembershipCreateUserException e) 

       { 
        ModelState.AddModelError("", ErrorCodeToString(e.StatusCode)); 
       } 
      } 

//View 
@model TestTcc2.Models.RegisterModel 
<div class="form-group"> 
         <label for="icode" class="col-md-3 control-label">Tipo de usuário</label> 
         <div class="col-md-9"> 
          @*Html.DropDownListFor(m=> m.UserType, userTypes)*@ 
          @Html.RadioButtonFor(m => m.UserType, "Ouvinte", new { id = "Ouvinte" }) 
          @Html.Label("Ouvinte") 
          @Html.RadioButtonFor(m=>m.UserType, "Musico", new { id= "Musico" }) 
          @Html.Label("Musico") 
         </div> 
        </div> 

EDIT:

Чтобы устранить проблему с radobutton, мне нужно обновить метод Post Register, вызывающий класс UserProfile.

Это код: http://pastebin.com/Mwd4QD6U

А теперь я создать новую тему, чтобы спросить об ошибке исключения, что я получаю в течение регистра Ссылка на тему: MemberShipException during the User Register at ASP.NET

+0

Возможны ли значения для 'UserType'« Ouvinte »и« Musico »? –

+0

Значения определены в RadioButtonFor, то есть: Ouvinte и Musico. @StephenMuecke –

ответ

1

Попробуйте

@Html.RadioButtonFor(m => m.UserType, "Ouvinte", new { id = "Ouvinte" }) 
@Html.Label("Ouvinte") 
@Html.RadioButtonFor(m=>m.UserType, "Musico", new { id= "Musico" }) 
@Html.Label("Musico") 
+0

Это не работает ... Может быть, вы знаете, нужно ли мне обновлять мой класс контроллера? –

+0

Просто протестирован в моем проекте, и он отлично работает. Какая у вас подпись метода POST? –

+0

Это мое сообщение и метод get в классе AccountController http://pastebin.com/KNn8GPkG Я боюсь, что радиобудильник не работает нормально, это может случиться? –