저는 ASP.NET mvc 4 템플릿을 사용하여 응용 프로그램을 만듭니다.RadioButton DB에 Null 저장 [ASP.NET MVC 4]
UserProfile 입력란에 UserType
문자열을 생성하고 데이터베이스를 업데이트하기 위해 이전 작업을 수행했습니다. 맞습니다.
등록보기에서 새 사용자를 등록하면 응용 프로그램이 모든 필드를 저장하지만 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>
편집 :
가 함께이 문제를 해결하려면 radiobutton, UserProfile 클래스를 호출하는 Post Register 메서드를 업데이트해야합니다. http://pastebin.com/Mwd4QD6U
그리고 지금은 내가 등록 항목 링크시는군요 예외 오류에 대해 질문 할 수있는 새로운 주제를 만들 수 있어요 :
이
코드입니다 MemberShipException during the User Register at ASP.NET
'UserType' "Ouvinte"와 "Musico"에 가능한 값이 있습니까? –
값은 RadioButtonFor에서 정의됩니다. 즉, Ouvinte 및 Musico입니다. @StephenMuecke –