Как исправить «EnumDropDownListFor для создания новой учетной записи» - PullRequest
0 голосов
/ 22 января 2019

У меня есть элемент управления EnumDropDownListFor на моей странице регистрации, который позволяет вам выбрать один из двух вариантов. Я попытался зарегистрировать две учетные записи с обеими опциями, но для обеих учетных записей всегда по умолчанию используется первая опция.

Это всегда работало во время тестирования при запуске кода в отладке, однако теперь код находится в сборке, он больше не работает, даже если код не был изменен.

Перечисление для выпадающего списка

public enum RaceName 
{ 
    Terran, 
    AsphaMiner 
}

Register.cshtml

// rest of file

<div class="form-group">                                        
@Html.LabelFor(m => m.RaceName, new { @class = "col-md-2 control-label" })
<div class="col-md-6">                                   
@Html.EnumDropDownListFor(m => m.RaceName, new { @class = "form-control" })
</div></div>

// more of file below too

AccountController.cs

[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Register(RegisterViewModel model)
{
   if (ModelState.IsValid)
   {
      var user = new ApplicationUser
      {
               UserName = model.UserName,
               Email = model.Email
               RaceName = model.RaceName,
   // rest of controller

IdentityModels.cs

public class ApplicationUser : IdentityUser
{
    public RaceName RaceName { get; set; }
    [NotMapped]
    public Race PlayerRace { get; set; }

    public ApplicationUser()
    {
        PlayerRace = new Race(this);
    }
    // rest of default code

Race.cs

public virtual ApplicationUser RaceOwner { get; set; }
public Race(ApplicationUser user)
{
    RaceOwner = user;
}
// other properties with [NotMapped] attribute so
// static values are not saved to sql db

RegisterViewModel.cs

public class RegisterViewModel
{
    [Required]
    [EmailAddress]
    [Display(Name = "Email")]
    public string Email { get; set; }

    [Required]
    [Display(Name = "Username")]
    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; }

    public RaceName RaceName { get; set; }        
}

Таким образом, пользователь создает учетную запись, вводит свой логин, пароль электронной почты и т. Д., Затем он выбирает один из вариантов DropDownList 1 из 2, но он всегда выбирает первый вариант, и я ничего не менял между переходом от отладки к версии сборки.

Если я выберу AsphaMiner, он будет установлен на Terran; и если я выберу Terran, он установит Terran.

Кто-нибудь может порекомендовать что-нибудь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...