Мой вид регистрации не публикует вход - PullRequest
0 голосов
/ 12 февраля 2019

Я пытаюсь войти в систему и зарегистрировать представление с помощью c #, html и MVC.Прежде всего, в моей базе данных есть таблица «Usuarios» с такими столбцами, как: Имя пользователя, Contrasena (Пароль), Электронная почта и т. Д.).Когда я заполняю все текстовые поля, чтобы проверить, обновляет ли мой контроллер мою базу данных (добавляя нового пользователя), он не работает.

Мой метод RegisterClient () в ClientController:

[HttpPost]
[AllowAnonymous]
public ActionResult RegisterClient(RegisterViewModel model)
{
    if(ModelState.IsValid)
    {
         Cliente Client = new Cliente(model.NombreUsuario, model.Password, model.Nombre, model.Apellido, model.Domicilio, model.TipoDoc, model.NumeroDoc, model.Telefono);

         using (var db = new ContextoDB())
         {
             if (db.Usuarios.Any(u => u.NombreUsuario == Client.NombreUsuario))
             {
                 ViewBag.DuplicateMessage = "Nombre de usuario en uso.";
                 return View("RegisterClient", model);
             }

             db.Usuarios.Add(Client);
             db.SaveChanges();
         }
         ModelState.Clear();
         ViewBag.SuccessMessage = "Registado excitosamente!";

         return RedirectToAction("RegistrationSuccess", "Account");
     } else
     {
         return View(model);
     }
 }

The RegisterClientПросмотр:

<div class="register-box">
    <h4 class="h4-header">Registro paso 2 de 2 </h4>

    @Html.ValidationSummary(true, "Register failed. Check your login details.")
    <fieldset class="fieldset-box client-field">
        <div class="user-info-box">
            <h3> Datos de la cuenta</h3>
            <div class="editor-field">
                @Html.TextBoxFor(model => model.NombreUsuario, new { Class = "YourBackgroundClass", Placeholder = "Usuario" })
                @Html.ValidationMessageFor(model => model.NombreUsuario, "", new { @class = "text-danger" })
            </div>

            <div class="editor-field">
                @Html.TextBoxFor(model => model.Email, new { Class = "YourBackgroundClass", Placeholder = "Email" })
                @Html.ValidationMessageFor(model => model.Email, "", new { @class = "text-danger" })
            </div>

            <div class="editor-field">
                @Html.PasswordFor(model => model.Password, new { Class = "YourBackgroundClass", Placeholder = "Contraseña" })
                @Html.ValidationMessageFor(model => model.Password, "", new { @class = "text-danger" })
            </div>

            <div class="editor-field">
                @Html.PasswordFor(model => model.ConfirmPassword, new { @class = "YourBackgroundClass", Placeholder = "Confirmar contraseña" })
                @Html.ValidationMessageFor(model => model.ConfirmPassword, "", new { @class = "text-danger" })
            </div>
        </div>

        <div class="personal-info-box">
            <h3> Datos personales</h3>
            <div class="editor-field">
                @Html.TextBoxFor(model => model.Nombre, new { Class = "YourBackgroundClass", Placeholder = "Nombre" })
            </div>

            <div class="editor-field">
                @Html.TextBoxFor(model => model.Apellido, new { Class = "YourBackgroundClass", Placeholder = "Apellido" })
            </div>

            <div class="editor-field">
                @Html.TextBoxFor(model => model.Domicilio, new { Class = "YourBackgroundClass", Placeholder = "Domicilio" })
            </div>

            <div class="editor-field">
                @Html.TextBoxFor(model => model.Telefono, new { Class = "YourBackgroundClass", Placeholder = "Telefono" })
            </div>

            <div class="editor-field">
                @Html.TextBoxFor(model => model.NumeroDoc, new { Class = "YourBackgroundClass", Placeholder = "Numero de documento" })
            </div>
        </div>
    </fieldset>

    <form action="" method="post">
        <input type="submit" class="but-next next round" name="upvote" value="&#8250;" />
    </form>

    <a href="#" class="but-next next round">&#8250;</a>
</div>

Когда я заполняю все поля, это вызывает сообщения проверки.

Ответы [ 3 ]

0 голосов
/ 12 февраля 2019

Он не публикует входные данные, потому что приведенный выше код не показывает сообщение на контроллер.

На вашем месте я бы поместил все, что вы хотите отправить на контроллер, в Html.BeginForm, например:

@using (Html.BeginForm("RegisterClient", "//ControllerName", FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
{
    // This is where you will put all the input boxes and text boxes that you want to send to the  controller method

    // Submit button to send model data to method
    <button type="submit">
}

Обязательно, вводимые вами данные должны соответствовать типу модели, указанному в параметрах метода.Помимо этого вы можете отправить данные через ajax в javascript.Преимущества этого:

  • Вам не нужно будет перезагружать страницу.
  • Вы можете перезагрузить частичные представления
  • Вы можете вернуть данные и заполнить областистраница
0 голосов
/ 12 февраля 2019

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

0 голосов
/ 12 февраля 2019

Вам нужно обернуть все свои входные данные в тег <form></form>.

<div class="register-box">
    <h4 class="h4-header">Registro paso 2 de 2 </h4> 

    @Html.ValidationSummary(true, "Register failed. Check your login details.")

    <form action="" method="post">
        <fieldset class="fieldset-box client-field">

            <div class="user-info-box">
                <h3> Datos de la cuenta</h3>
                <div class="editor-field">
                    @Html.TextBoxFor(model => model.NombreUsuario, new { Class = "YourBackgroundClass", Placeholder = "Usuario" }) @Html.ValidationMessageFor(model => model.NombreUsuario, "", new { @class = "text-danger" })
                </div>

                <div class="editor-field">
                    @Html.TextBoxFor(model => model.Email, new { Class = "YourBackgroundClass", Placeholder = "Email" }) @Html.ValidationMessageFor(model => model.Email, "", new { @class = "text-danger" })
                </div>

                <div class="editor-field">
                    @Html.PasswordFor(model => model.Password, new { Class = "YourBackgroundClass", Placeholder = "Contraseña" }) @Html.ValidationMessageFor(model => model.Password, "", new { @class = "text-danger" })
                </div>

                <div class="editor-field">
                    @Html.PasswordFor(model => model.ConfirmPassword, new { @class = "YourBackgroundClass", Placeholder = "Confirmar contraseña" }) @Html.ValidationMessageFor(model => model.ConfirmPassword, "", new { @class = "text-danger" })
                </div>

            </div>

            <div class="personal-info-box">
                <h3> Datos personales</h3>
                <div class="editor-field">
                    @Html.TextBoxFor(model => model.Nombre, new { Class = "YourBackgroundClass", Placeholder = "Nombre" })
                </div>

                <div class="editor-field">
                    @Html.TextBoxFor(model => model.Apellido, new { Class = "YourBackgroundClass", Placeholder = "Apellido" })
                </div>
                <div class="editor-field">
                    @Html.TextBoxFor(model => model.Domicilio, new { Class = "YourBackgroundClass", Placeholder = "Domicilio" })
                </div>
                <div class="editor-field">
                    @Html.TextBoxFor(model => model.Telefono, new { Class = "YourBackgroundClass", Placeholder = "Telefono" })
                </div>

                <div class="editor-field">
                    @Html.TextBoxFor(model => model.NumeroDoc, new { Class = "YourBackgroundClass", Placeholder = "Numero de documento" })
                </div>
            </div>

        </fieldset>

        <input type="submit" class="but-next next round" name="upvote" value="&#8250;" />
    </form>

    <a href="#" class="but-next next round">&#8250;</a>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...