在表格中添加新字段后,登录表格无法提交。.net mvc

问题描述 投票:0回答:1

我在我的表中添加了1个新的字段,将该字段添加到Model DTO和Model ViewModel cs中,但Login表单提交后似乎无法工作。没有错误显示,登录页面只是刷新。我采取的步骤如下

1) 手动添加到表中的新字段

2) 在模型DTO和模型ViewModel cs中增加了新的字段。

[HttpPost]
public ActionResult Login(UserVM model)
{
    if(ModelState.IsValid)
    {
        using (Db db = new Db())
        {
            var user = db.User.Where(x => x.Username.Equals(model.Username) && x.Password.Equals(model.Password)).FirstOrDefault();

            if(user != null)
            {
                Session["Id"] = user.Id.ToString();
                Session["Username"] = user.Username.ToString();
                Session["Password"] = user.Password.ToString();
                Session["Firstname"] = user.Firstname.ToString(); //NewField
                Session["RoleName"] = user.RoleName.ToString();

                return RedirectToAction("UserProfile");
            }
            else
            {
                ModelState.AddModelError("", "Username / Password is Invalid");
                return View(model);
            }
        }
    }

    return View();
}
c# asp.net asp.net-mvc asp.net-mvc-4
1个回答
0
投票

好了,我自己能够解决这个问题。我注意到的问题是非常独特的,我很乐意从头解释。

我先用这些信息创建了一个表

Id,用户名,密码。

然后在Controller中创建了它的Action,一切都设置好了。

后来我决定在表中添加新的字段,比如说名字、姓氏和电子邮件。

现在,问题来了。在Model ViewModel中,我创建了一个Model类作为UserVM,所以,如果我将这些新属性添加到Model类中,并加上[所需]数据注释,那么Login Action就不会响应。如果我返回并删除[所需]数据注释,动作就会工作。

我在谷歌上看到了一个解决方案,但没有成功。

暂时关闭这个票据作为解决,但很想知道我们如何能使Action运行与[所需]数据注释添加在模型类的新字段。

© www.soinside.com 2019 - 2024. All rights reserved.