首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

MVC中的ModelState.IsValid印证总是true

2012-10-31 
MVC中的ModelState.IsValid验证总是true我没有使用强类型视图,ModelState.IsValid验证总是true,感觉好像没

MVC中的ModelState.IsValid验证总是true
我没有使用强类型视图,ModelState.IsValid验证总是true,感觉好像没有进行Model数据验证

HTML code
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/MasterPage.Master"    Inherits="System.Web.Mvc.ViewPage" %><asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">    Login</asp:Content><asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">    <h3>        用户登录</h3>    <% using (Html.BeginForm())       { %>    <span class="message">        <%= Html.Encode(ViewData["message"])%>    </span>    <div>        <fieldset>            <legend>登录信息</legend>            <div class="editor-label">                用户名            </div>            <div class="editor-field">                <%= Html.TextBox("username")%>                <%= Html.ValidationMessage("username")%>            </div>            <div class="editor-label">                密码            </div>            <div class="editor-field">                <%= Html.Password("password")%>                <%= Html.ValidationMessage("password")%>            </div>            <p>                <input type="submit" value="登录" />            </p>        </fieldset>    </div>    <% } %></asp:Content>

C# code
[HttpPost,ActionName("Login")]        public ActionResult LoginPost(FormCollection collection)        {            userinfo userinfo=new userinfo();            userinfo.username = collection.GetValue("username").AttemptedValue;            userinfo.password = collection.GetValue("password").AttemptedValue;            if (!ModelState.IsValid)                return View();            else            {                userinfo = dal.Login(userinfo.username, userinfo.password);                if (userinfo != null)                {                    Session.Add("username", userinfo.username);                    return RedirectToAction("index");                }                else                {                    ViewData["message"] = "用户名或密码错误,请重新输入!";                    return View();                }            }        }

哪位高手能帮忙解决一下啊,小弟不胜感激

[解决办法]
userinfo = dal.Login(userinfo.username, userinfo.password);
上面不就是返回数据库中是否有这条记录嘛!
你说是否为空是:输入框中是否为空、还是数据库中没有这条记录?
[解决办法]
他默认值就是true,你没有对模型进行验证,比如如果某个值为空,要添加错误提示

热点排行