none
Exibir o retorno do validationsummary na Partial View RRS feed

  • Pergunta

  • Estou chamando uma partial view através do _Layout, essa partial view conterá um formulário de login, porém ao postar eu vou verificar se o usuário existe e caso não existir eu vou retornar o erro, porém queria que o erro aparece na partial view dentro da view atual e não retornar somente a partial view.

    _Layout

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width" />
        <title>@ViewBag.Title</title>
        @Styles.Render("~/Content/css")
        @Scripts.Render("~/bundles/modernizr")
    </head>
        <body>
            @Html.Partial("Login")
    
            @RenderBody()
    
            @Scripts.Render("~/bundles/jquery")
            @RenderSection("scripts", required: false)
        </body>
    </html>

    Partial View Login

    @model TestePartialView.Models.Login
    
    @Html.BeginForm("Login", "Home", FormMethod.Post)
    {
        @Html.AntiForgeryToken()
        <div>
            @Html.ValidationSummary(true, "", new { @class = "text-danger" })
            @Html.EditorFor(model => model.Email, new { htmlAttributes = new { @class = "form-control" } })
            @Html.EditorFor(model => model.Senha, new { htmlAttributes = new { @class = "form-control" } })
            <input type="submit" value="Cadastrar"/>
        </div>
    }
    @section Scripts{
        @Scripts.Render("~/bundles/jqueryval")
    }

    Model Login

    namespace TestePartialView.Models
    {
        public class Login
        {
            public string Email { get; set; }
            public string Senha { get; set; }
        }
    }

    Controller

    namespace TestePartialView.Controllers
    {
        public class HomeController : Controller
        {
            //
            // GET: /Home/
    
            public ActionResult Index()
            {
                return View();
            }
    
            public PartialViewResult Login()
            {
                var login = new Login();
    
                return PartialView(login);
            }
    
            [HttpPost]
            public PartialViewResult Login(Login model)
            {
                ModelState.AddModelError("", "Retorno do validation");
    
                return PartialView();
            }
        }
    }

    Não sei se estou fazendo correto as chamadas do partial view e o retorno do método..

    segunda-feira, 20 de julho de 2015 17:44

Todas as Respostas

  • Bom Dia,

    no seu @section o Scripts esta com o "S" maiúsculo e no seu _Layout  o @rendersection("scripts",required:false) esta com o "s" minusculo, o C# é Case Sensitive, deve ser este o problema.

    sexta-feira, 31 de julho de 2015 11:21