主View能否用isvalid去判断分部view的model

hxzz0190315 2017-03-12 10:21:08
最开始时候登陆框都是放在主view上面的,然后主view直接用了一个model,然后直接HttpPost去重写了Index()来处理登陆请求(因为index上面就一个form做submit,就没有再单独建Login的action处理)。

然后后面想试着把登陆框放到了分部view去实现登陆后不显示这个登陆框,然后在主view里面去用RenderAction去调用不同的action来处理这个登陆框的显示问题。然后index的post部分没有修改。
但是发现isvalid不起作用了,因为model跑到了分部view里面去了,请问这种情况下主view怎么通过他的actionresult去做isvalid的处理,就是各种errorMessage的打印出来。PS:分部view里面的submit好像还能通过主view index去执行,就是执行的时候error message无法显示到分部view里面了。

请问怎么才能让errormessage能判断和显示出来,需要怎么修改呢?
或者通过登陆状态隐藏或者显示这个登陆框除了分部view还有其他方法吗?
主view:

@{
Html.RenderAction("LoginPanel", "Home");
}

分部view:
@model test.Models.LoginModel
<div >
@using (Html.BeginForm("Index", "Home", FormMethod.Post))
{
<div >
<div>
@Html.TextBoxFor(m => m.account, new { @class = "layui-input", @placeholder = "账号", @autocomplete = "off" })
@Html.ValidationMessageFor(m => m.account, null, new { @style = "color:#ffffff; float:left" })
@Html.TextBoxFor(m => m.password, new { @type = "password", @class = "layui-input", @placeholder = "密码", @autocomplete = "off" })
@Html.ValidationMessageFor(m => m.password, null, new { @style = "color:#ffffff; float:left" })
<button type="submit">登陆</button>
@Html.ValidationMessage("Login", new { @style = "color:#ffffff; text-align:left" })

</div>
</div>
</div>

HomeController:
[HttpPost]
public ActionResult Index(Models.LoginModel loginModel)
{

if (ModelState.IsValid)
{
//简化的登陆验证过程,后需替换成为sql验证
if (loginModel.account.Equals("user") && loginModel.password.Equals("user"))
{
Session["LoginedUser"] = loginModel.account;
return RedirectToAction("Users", "Home");
}
else
{
ModelState.AddModelError("Login", "用户名或者密码错误!");
}


}

return View();
}

public ActionResult LoginPanel()
{
if (Session["LoginedUser"] == null)
{
return PartialView("ShowLoginPanel");
}
return PartialView("ShowUnlogPanel");

}



...全文
180 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧