#asp.net #asp.net-mvc #forms #validation #asp.net-mvc-4
#asp.net #asp.net-mvc #формы #проверка #asp.net-mvc-4
Вопрос:
Я пытаюсь создать форму регистрации мастера (многоступенчатая регистрация) в asp.net mvc.
У меня есть 2 метода на моем контроллере (Login и Register), потому что я не хочу, чтобы URL-адрес менялся.
Ну, на первой странице (логин) У меня есть 2 формы (Login и registerStep1).
Я не знаю, как различать формы в моем контроллере.
Я пробовал использовать название кнопки, но я НЕ ЗНАЮ, ПОЧЕМУ это работает только в Chrome.
Firefox получает правильное имя кнопки входа в систему, но дает мне нулевое значение, когда я пытаюсь с помощью кнопки регистрации. Я действительно не знаю, почему. Обе формы имеют одинаковую структуру.
Форма регистрации:
model Project.ViewModels.LoginViewModel
@using (Html.BeginForm("Login", "User", FormMethod.Post, new { @class = "form-horizontal" }))
{
@Html.AntiForgeryToken()
<span class="field-validation-error">amp;nbsp;@ViewBag.RegisterError</span>
<p>@Html.TextBoxFor(m => m.Step1.Email, new { @class = "noround input-block-level", placeholder = "Your Email" })
@Html.ValidationMessageFor(m => m.Step1.Email)
<small>amp;nbsp;</small>
</p>
<p>@Html.TextBoxFor(m => m.Step1.Document, new { @class = "noround input-block-level", placeholder = "Your document" })
@Html.ValidationMessageFor(m => m.Step1.Document)
<small>amp;nbsp;</small>
</p>
<p>
<button type="submit" name="buttonName" value="Register" class="noround btn">CONTINUE</button>
</p>
}
Форма входа такая же, но с электронной почтой и паролем.
и мой контроллер:
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Login(LoginViewModel model, string buttonName)
{
if (buttonName == "Register")
{
if (ModelState.IsValid)
{
bool isValid = true;
if (!IsUniqueEmail(model.Step1.Email))
{
isValid = false;
}
if (!IsUniqueCPF(model.Step1.Document))
{
isValid = false;
}
if (isValid)
{
TempData["WizardModel"] = model;
return RedirectToAction("Register");
}
}
}
else if (buttonName == "Login")
{
..//the rest
Что я могу сделать?
Ответ №1:
<button type="submit" name="buttonName" value="Login" class="noround btn">Login</button
Добавить кнопку входа на страницу
создайте одинаковые поля для регистрации и для входа в систему
и с помощью jquery нажмите кнопку входа в систему, чтобы отправить свою форму с вашим именем кнопки
Комментарии:
1. У меня уже есть кнопка входа на странице. Он отправляет сообщения тому же методу, который регистрируется на моем контроллере (логин). Вход в систему отлично работает в любом браузере. Просто кнопка регистрации, которая каждый раз выдает мне null в Firefox. Я избегал отправки своих форм с помощью jQuery, но я попробую
2. Ну, я действительно новичок в Интернете, но мне нужно перенаправление после отправки (от входа до регистрации) Я могу добиться этого только с помощью jquery?
Ответ №2:
В итоге я использовал:
<input type="hidden" name="buttonName" value="Register">
в форме.
Это работает для меня в любом браузере.
Спасибо