C# 我的注册视图没有发布输入

C# 我的注册视图没有发布输入,c#,html,model-view-controller,C#,Html,Model View Controller,我正在尝试使用c#、html和MVC进行登录和注册视图。首先,我的数据库中有一个名为“Usuarios”的表,表中的列有:Username、Contrasena(密码)、Email等。当我填写所有文本框以测试我的控制器是否更新数据库(添加新用户)时,它不起作用 ClientController中的My RegisterClient()方法: [HttpPost] [AllowAnonymous] public ActionResult RegisterClient(RegisterViewMod

我正在尝试使用c#、html和MVC进行登录和注册视图。首先,我的数据库中有一个名为“Usuarios”的表,表中的列有:Username、Contrasena(密码)、Email等。当我填写所有文本框以测试我的控制器是否更新数据库(添加新用户)时,它不起作用

ClientController中的My RegisterClient()方法:

[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);
     }
 }
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>

注册paso 2 de 2
@ValidationSummary(true,“注册失败。请检查您的登录详细信息。”)
达托斯德拉昆塔酒店
@TextBoxFor(model=>model.NombreUsuario,new{Class=“YourBackgroundClass”,Placeholder=“Usuario”})
@Html.ValidationMessageFor(model=>model.NombreUsuario,“,new{@class=“text danger”})
@Html.TextBoxFor(model=>model.Email,新的{Class=“YourBackgroundClass”,Placeholder=“Email”})
@Html.ValidationMessageFor(model=>model.Email,“,new{@class=“text danger”})
@Html.PasswordFor(model=>model.Password,新的{Class=“YourBackgroundClass”,Placeholder=“Contraseña”})
@Html.ValidationMessageFor(model=>model.Password,“,new{@class=“text danger”})
@Html.PasswordFor(model=>model.ConfirmPassword,新的{@class=“YourBackgroundClass”,Placeholder=“Confirmar contraseña”})
@Html.ValidationMessageFor(model=>model.ConfirmPassword,“,new{@class=“text danger”})
达托斯个人酒店
@TextBoxFor(model=>model.Nombre,new{Class=“YourBackgroundClass”,Placeholder=“Nombre”})
@Html.TextBoxFor(model=>model.Apellido,new{Class=“YourBackgroundClass”,Placeholder=“Apellido”})
@Html.TextBoxFor(model=>model.Domicilio,new{Class=“YourBackgroundClass”,Placeholder=“Domicilio”})
@Html.TextBoxFor(model=>model.Telefono,新的{Class=“YourBackgroundClass”,Placeholder=“Telefono”})
@Html.TextBoxFor(model=>model.NumeroDoc,新的{Class=“YourBackgroundClass”,Placeholder=“Numero de documento”})

当我填充所有框时,它会触发验证消息。

您需要将所有输入包装在
标记中


注册paso 2 de 2
@ValidationSummary(true,“注册失败。请检查您的登录详细信息。”)
达托斯德拉昆塔酒店
@Html.TextBoxFor(model=>model.NombreUsuario,new{Class=“YourBackgroundClass”,Placeholder=“Usuario”})@Html.ValidationMessageFor(model=>model.NombreUsuario,”,new{@Class=“text danger”})
@Html.TextBoxFor(model=>model.Email,new{Class=“YourBackgroundClass”,Placeholder=“Email”})@Html.ValidationMessageFor(model=>model.Email,”,new{@Class=“text danger”})
@Html.PasswordFor(model=>model.Password,new{Class=“YourBackgroundClass”,Placeholder=“Contraseña”})@Html.ValidationMessageFor(model=>model.Password,”,new{@Class=“text danger”})
@Html.PasswordFor(model=>model.ConfirmPassword,new{@class=“YourBackgroundClass”,Placeholder=“Confirmar contraseña”})Html.ValidationMessageFor(model=>model.ConfirmPassword,”,new{@class=“text danger”})
达托斯个人酒店
@TextBoxFor(model=>model.Nombre,new{Class=“YourBackgroundClass”,Placeholder=“Nombre”})
@Html.TextBoxFor(model=>model.Apellido,new{Class=“YourBackgroundClass”,Placeholder=“Apellido”})
@Html.TextBoxFor(model=>model.Domicilio,new{Class=“YourBackgroundClass”,Placeholder=“Domicilio”})
@Html.TextBoxFor(model=>model.Telefono,新的{Class=“YourBackgroundClass”,Placeholder=“Telefono”})
@Html.TextBoxFor(model=>model.NumeroDoc,新的{Class=“YourBackgroundClass”,Placeholder=“Numero de documento”})

它不会发布输入,因为上面的代码显示没有发布到控制器

如果我是你,我会将你想要发送给控制器的所有内容都放在一个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">
}
@使用(Html.BeginForm(“RegisterClient”,“ControllerName”,FormMethod.Post,new{@class=“form horizontal”,role=“form”}))
{
//在这里,您将放置要发送到控制器方法的所有输入框和文本框
//“提交”按钮将模型数据发送到方法
}
显然,您发送的输入详细信息必须与方法参数中提供的模型类型匹配。除此之外,您还可以通过javascript中的ajax发送数据。这样做的好处是:

  • 您不需要重新加载页面
  • 可以重新加载局部视图
  • 您可以返回数据并填充页面的各个区域

您的所有输入控件都需要在表单中。您在表单中只保留了“提交”按钮,因此您的数据将不会被发布,而且您还没有指定提交表单数据的控制器和操作方法名称

为什么?上面的代码中没有调用控制器的内容,我该怎么做?在“向上投票”按钮中?我是t的笨蛋