asp.net: ¿Por qué no se transfiere mi información de miembro de la página de Razor al Controlador?

CorePress2024-01-25  11

Mi vista de afeitar solo envía los dos campos de cuadros de texto. Lo necesito para enviar un campo llamado "isDesigner" que es un bool o necesito poder recuperar esta información de la base de datos en el controlador en función de lo que indica el "Correo electrónico". es.

Aquí está el cshtml

@model Member
@{ ViewData["Title"] = "Index"; }

<div class="row">
    <div class="col-md-4">
        <form method="post">
            <div>
                <h4>Login</h4>
                <div class="form-group">
                    <label class="control-label">Email: </label>
                    <input asp-for="Email" class="form-control" /><span asp-validation-for="Email" class="text-danger"></span>
                </div>
                <div class="form-group">
                    <label class="control-label">Password: </label>
                    <input asp-for="Password" class="form-control" /><span asp-validation-for="Password" class="text-danger"></span>
                </div>
                <input type="submit" class="btn btn-primary" />
            </div>
        </form>
    </div>
</div>
<label> <a class="nav-link text-dark" asp-area="" asp-controller="Members" asp-action="Register">Register</a></label>
<label> <a class="nav-link text-dark" asp-area="admin" asp-controller="Home" asp-action="Index">Admin</a></label>

Este es el lado del controlador

public class MembersController : Controller
    {
        private readonly ThreeDeePrintingHubContext _context;
        private readonly ILogger<MembersController> _logger;

        public MembersController(ThreeDeePrintingHubContext threeDeeHubContext, ILogger<MembersController> logger)
        {
            _context = threeDeeHubContext;
            _logger = logger;
        }
       
        [HttpPost]
        public ActionResult Index(Member member)
        {
            var isValidMember = _context.Members.Where(x => x.Email == member.Email && x.Password == member.Password).Any();

            if (isValidMember)
            {
                return Redirect("/Product");
            }
            else
            {

                TempData["Message"] = "Invalid user";
                return View();
            }
        }


------------------------------------

Hasta donde yo sé, si desea enviar el valor bool desde la vista al controlador, primero debe obtenerlo o configurarlo en la vista y luego enviarlo al controlador.

Más detalles, puede consultar los siguientes códigos:

<form method="post">
    <div>
        <h4>Login</h4>
        <div class="form-group">
            <label class="control-label">Email: </label>
            <input asp-for="Email" class="form-control" /><span asp-validation-for="Email" class="text-danger"></span>
        </div>
        <div class="form-group">
            <label class="control-label">Password: </label>
            <input asp-for="Password" class="form-control" /><span asp-validation-for="Password" class="text-danger"></span>
        </div>
        <div class="form-group">
            <label class="control-label">isDesigner: </label>
            <input asp-for="isDesigner" class="form-control" /><span asp-validation-for="isDesigner" class="text-danger"></span>
        </div>
        <input type="submit" class="btn btn-primary" />
    </div>
</form>

Clase de miembros:

public class Member
{
    public string Email { get; set; }


    public string Password { get; set; }


    public bool isDesigner { get; set; }
}

Resultado:



------------------------------------

   [HttpPost]
        public ActionResult Index(Member member)
        {

Esta fue la respuesta

        var myMember = _context.Members.Where(x => x.Email == member.Email && x.Password == member.Password).FirstOrDefault();
        var isValidMember = myMember != null;
        if (isValidMember)
        {
            if (myMember.IsDesigner)
            {
                return Redirect("/Product/DesignerIndex");
            }
            else
            {
                return Redirect("/Product");
            }
        }
        else
        {

            TempData["Message"] = "Invalid user";
            return View();
        }
    }
        // GET: MembersController/Details/5
        public ActionResult Details(int id)
    {
        return View();
    }

randomThread
Android: la aplicación falla al iniciarse "Appname sigue deteniéndose". ClassNotFoundException e InflateExceptionwindows - Lote Trata los caracteres especiales como errores de entradadardo - Flutter StreamBuilder con datos iniciales y conciencia nular - geom_col con posición = "esquivar" y fecha en el eje x (múltiples valores)discord.py - haciendo, de lo contrario, si busca un (servidor/gremio) específico para un comando de envíoPython - Congelación del botón Tkinterhtml: uso de consulta de medios para ejecutar