2012-06-05 2 views
0

Я использую ASP.NET, MVC3, Razor. На моем сайте у меня есть форма входа на все страницы (в верхнем заголовке), откуда пользователь может войти в систему в любое время. Проблема возникает, когда приходит другая страница с другой формой. Я не могу понять, как это реализовать. Я много пробовал, но я думаю, что мне нужен очень маленький пример для решения моей проблемы. Пример может быть таким же простым, как форма регистрации и форма входа в систему на одной странице, и они работают отдельно, все их проверки и другие материалы. Форма входа и форма регистрации могут быть частичными или любыми, что может предложить кто-либо, который можно использовать повторно.ASP.NET MVC 3 Razor - Регистрация и форма входа на ту же страницу/вид

Вот код _Register.cshtml (общий вид)

@model MVCRnD.Models.RegisterModel

@using (Html.BeginForm("Register","Account")) { 

} 

код для about.cshtml, на которых выше общий вид был помещен

@Html.Partial("_Register") 

Код для контроллера счета

[HttpPost]

public ActionResult Register(RegisterModel model) 
    { 
     if (ModelState.IsValid) 
     { 
      // Attempt to register the user 
      MembershipCreateStatus createStatus; 
      Membership.CreateUser(model.UserName, model.Password, model.Email, null, null, true, null, out createStatus); 

      if (createStatus == MembershipCreateStatus.Success) 
      { 
       FormsAuthentication.SetAuthCookie(model.UserName, false /* createPersistentCookie */); 
       return RedirectToAction("Index", "Home"); 
      } 
      else 
      { 
       ModelState.AddModelError("", ErrorCodeToString(createStatus)); 
      } 
     } 

     // If we got this far, something failed, redisplay form 
     return View(model); 
    } 

Партия l вид, то есть форма регистрации отличная. Но когда я нажимаю кнопку «Отправить», он публикует всю форму, но забирает меня в регистр/учетную запись/регистр, который на самом деле правильный. Но я хочу быть на одной странице и не переходить к другой форме. Вы хотите, чтобы я отправил полный код? Я могу загрузить его где-нибудь и отправить вам ссылку.

+0

Взгляните на мой ответ здесь: [Вход и регистрация формы на той же странице] [1] [1 ]: http://stackoverflow.com/a/17860676/1791760 – Lars

ответ

0

Не знаете, почему у вас проблемы, но размещение двух форм на одной странице является очень распространенной практикой, независимо от того, какой серверный язык вы используете.

@using (Html.BeginForm("Logon", "Account")) { 
    ... 
} 

@using (Html.BeginForm("Register", "Account")) { 
    ... 
} 

Что переводится:

<form action="/Account/Logon" method="post">   
    ... 
</form> 

<form action="/Account/Register" method="post">   
    ... 
</form> 
+1

Я согласен, и я могу сделать это легко в классическом ASP или ASP.NET с веб-формами. Можете ли вы перевести это в синтаксис двигателя бритвы MVC с кодом для контроллеров? – Neeraj

+0

Несомненно, извините, обновил мой ответ. – Terry

+0

Спасибо Терри, но я до сих пор не в состоянии добиться своей цели. Я создал интернет-приложение MVC, которое дает мне списки регистрации и входа в систему и их модели. Затем я создал 2 частичных представления, используя тот же код, что и в режимах входа и регистрации. Теперь я попытался разместить эти 2 патианских взгляда на 1 странице, например, на странице. Представления не работают. Иногда проверки не работают и иногда публикуются. Может кто-нибудь, пожалуйста, дать мне ссылку рабочего примера, который обрабатывает 2 частичных вида на одной странице. Я буду очень благодарен. – Neeraj

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