Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Ao submeter a requisição não está passando pelo método POST

Segui o vídeo Criando a pagina de registro mas percebi que a requisição da página registrar não tá passando pelo método que tem como parâmetro a ViewModel dentro da Controller, alguém pode me ajudar?

4 respostas

Seguem os códigos:

Controller:

using ExemploIdentity.ViewModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace ExemploIdentity.Controllers
{
    public class ContaController : Controller
    {
        public ActionResult Registrar()
        {
            return View();
        }

        [HttpPost]
        public ActionResult Registar(ContaRegistrarViewModel conta)
        {
            return View();
        }
    }
}

ViewModel:

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;

namespace ExemploIdentity.ViewModel
{
    public class ContaRegistrarViewModel
    {
        [Required]
        public string UserName { get; set; }
        [Required]
        [Display(Name = "Nome Completo")]
        public string NomeCompleto { get; set; }
        [Required]
        [EmailAddress]
        public string Email { get; set; }
        [Required]
        [DataType(DataType.Password)]
        public string Senha { get; set; }
    }
}

View:

@model ExemploIdentity.ViewModel.ContaRegistrarViewModel
@{
    ViewBag.Title = "Registrar";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<h2>Registrar</h2>

@using (Html.BeginForm())
{
    <h4>Complete o cadastro de sua conta</h4>
    <hr />

    @Html.ValidationSummary("", new { @class = "text-danger" });

    @Html.EditorForModel();

    <div class="form-group">
        <div class="col-md-offset-2 col-md-10">
            <input type="submit" value="Registrar" class="btn btn-default"/>
        </div>
    </div>
}

Oi Lincoln, tudo bem?

Aparentemente faltou você declarar qual controller e action serão acionados pelo método submit do formulário. Exemplo:

@using (Html.BeginForm("SuaActionY", "SeuControllerY", FormMethod.Post))

Pode dar uma olhada nisso? Obrigado!

solução!

Oi Marcelo, tudo tranquilo! Na verdade eu resolvi de outra forma... minha action que recebe uma requisição POST estava com o nome errado Registar e o correto seria Registrar. Depois que fiz a modificação, funcionou perfeitamente.

Mas obrigado mesmo assim!

Excelente, Lincoln! Obrigado por participar do fórum!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software