2015-09-17 2 views
2

Прежде всего у меня есть страница регистра, как этотРегистрация Просмотр страницы оленья кожа работа в главном Page View

@using (Html.BeginForm()) 
{ 
    @Html.AntiForgeryToken() 

<form role="form" action="" method="post" class="login-form"> 
    <div class="form-group"> 
     <div> 
      @Html.TextBoxFor(model => model.Name, new { @class = "form-username form-control", placeholder = "Name" }) 
     </div> 
    </div> 
    <div class="form-group"> 
     @Html.TextBoxFor(model => model.UserName, new { @class = "form-username form-control", placeholder = "User Name" }) 
    </div> 
    <div class="form-group"> 
     @Html.TextBoxFor(model => model.Email, new { @class = "form-username form-control", placeholder = "Email" }) 
    </div> 
    <div class="form-group"> 
     @Html.PasswordFor(model => model.Password, new { @class = "form-username form-control", placeholder = "Password" }) 
    </div> 
    <input type="submit" value="Register" class="btn" /> 
</form> 

} 

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

<div class="form-bottom">      
    @RenderPage("~/Views/User/Register.cshtml") 
</div> 

и это код контроллера.

public ActionResult Register() 
    { 
     return View(new RegisterModel()); 
    } 

    [HttpPost] 
    public async Task<ActionResult> Register(RegisterModel model) 
    { 
     if (!ModelState.IsValid) 
     { 
      return View(model); 
     } 

     var siteContext = new SiteContext(); 
     var user = new User 
     { 
      Name = model.Name, 
      Email = model.Email, 
      Password=model.Password, 
      UserName=model.UserName 
     }; 

     await siteContext.Users.InsertOneAsync(user); 
     return RedirectToAction("Profile", "MainPage"); 
    } 
+1

В чем же проблема? –

+0

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

+0

Что не работает? Есть ли сообщение об ошибке? Если элемент не добавлен в базу данных, то это код, который нам нужно увидеть. –

ответ

0

Чтобы быть честным весь взгляд немного беспорядок, когда вы используете Html.BeginForm() вам не нужен другой form внутри этого. Ваше мнение должно выглядеть следующим образом:

@using (Html.BeginForm("{Action}", "{Controller}", FormMethod.Post, new { @class = "login-form"})) 
{ 
    @Html.AntiForgeryToken() 

    <div class="form-group"> 
     <div> 
      @Html.TextBoxFor(model => model.Name, new { @class = "form-username form-control", placeholder = "Name" }) 
     </div> 
    </div> 
    <div class="form-group"> 
     @Html.TextBoxFor(model => model.UserName, new { @class = "form-username form-control", placeholder = "User Name" }) 
    </div> 
    <div class="form-group"> 
     @Html.TextBoxFor(model => model.Email, new { @class = "form-username form-control", placeholder = "Email" }) 
    </div> 
    <div class="form-group"> 
     @Html.PasswordFor(model => model.Password, new { @class = "form-username form-control", placeholder = "Password" }) 
    </div> 
    <input type="submit" value="Register" class="btn" /> 
} 

Вы должны заменить с именем действия, регистр. Также замените {Controller} на имя контроллера.

Некоторые полезные documentation.

+0

Я знаю, что я все еще новичок на mvc.And спасибо, что это работает. –

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