Asp.net mvc 我的登录控制器中的参数错误

Asp.net mvc 我的登录控制器中的参数错误,asp.net-mvc,login,Asp.net Mvc,Login,我的登录控制器中有一个错误,我无法找出原因。错误是针对该行的 Login user = db.Logins.Find(LoginStudentNumber); 它在db.Logins.Find(LoginStudentNumber)下面加下划线;并表示无法将类型“RMS.Models.Login”隐式转换为RMS.Login 我确保使用了正确的表字段。注意:输入intellisence时,会显示“登录”而不是“登录”。但它不会给那个部分带来任何错误 下面是代码的其余部分 控制器: using

我的登录控制器中有一个错误,我无法找出原因。错误是针对该行的

Login user = db.Logins.Find(LoginStudentNumber);
它在db.Logins.Find(LoginStudentNumber)下面加下划线;并表示无法将类型“RMS.Models.Login”隐式转换为RMS.Login

我确保使用了正确的表字段。注意:输入intellisence时,会显示“登录”而不是“登录”。但它不会给那个部分带来任何错误

下面是代码的其余部分 控制器:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using RMS.DAL;
using RMS.Models;

namespace RMS.Controllers
{
    public class LoginController : Controller
    {
        RMSContext db = new RMSContext();


        [AllowAnonymous]
        public ActionResult Login(string returnUrl)
        {
            ViewBag.ReturnUrl = returnUrl;
            return View();
        }

        //
        // POST: /Account/Login
        [HttpPost]
        [AllowAnonymous]
        public ActionResult Login(Login model, int? LoginStudentNumber, string LoginPassword)
        {
            //Login user = db.Logins
            Login user = db.Logins.Find(LoginStudentNumber);


            if (user == null)
            {
                ModelState.AddModelError("", "Invalid User Id");

                return View(model);
            }



            if (user.LoginPassword.Equals(LoginPassword))
            {

                return RedirectToAction("Index", "Home");


            }

            ModelState.AddModelError("", "Invalid Password");
            return View(model);

        }
    }
}
using Login = RMS.Models.Login;
视图:


这是因为这条线

Login user = db.Logins.Find(LoginStudentNumber);
db.Logins.Find()

如果您这样做:

var user = db.Logins.Find(LoginStudentNumber);
它将修复该错误,因为它将隐式键入。但是,由于它不是您期望的类型,您可能会得到其他错误


您需要做的是将
user
的值映射到
RMS的类型。登录

这是因为这行

Login user = db.Logins.Find(LoginStudentNumber);
db.Logins.Find()

如果您这样做:

var user = db.Logins.Find(LoginStudentNumber);
它将修复该错误,因为它将隐式键入。但是,由于它不是您期望的类型,您可能会得到其他错误


您需要做的是将
user
的值映射到
RMS的类型。登录

这是因为这行

Login user = db.Logins.Find(LoginStudentNumber);
db.Logins.Find()

如果您这样做:

var user = db.Logins.Find(LoginStudentNumber);
它将修复该错误,因为它将隐式键入。但是,由于它不是您期望的类型,您可能会得到其他错误


您需要做的是将
user
的值映射到
RMS的类型。登录

这是因为这行

Login user = db.Logins.Find(LoginStudentNumber);
db.Logins.Find()

如果您这样做:

var user = db.Logins.Find(LoginStudentNumber);
它将修复该错误,因为它将隐式键入。但是,由于它不是您期望的类型,您可能会得到其他错误


您需要做的是将
user
的值映射到
RMS的类型。登录

尝试在控制器中添加以下内容:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using RMS.DAL;
using RMS.Models;

namespace RMS.Controllers
{
    public class LoginController : Controller
    {
        RMSContext db = new RMSContext();


        [AllowAnonymous]
        public ActionResult Login(string returnUrl)
        {
            ViewBag.ReturnUrl = returnUrl;
            return View();
        }

        //
        // POST: /Account/Login
        [HttpPost]
        [AllowAnonymous]
        public ActionResult Login(Login model, int? LoginStudentNumber, string LoginPassword)
        {
            //Login user = db.Logins
            Login user = db.Logins.Find(LoginStudentNumber);


            if (user == null)
            {
                ModelState.AddModelError("", "Invalid User Id");

                return View(model);
            }



            if (user.LoginPassword.Equals(LoginPassword))
            {

                return RedirectToAction("Index", "Home");


            }

            ModelState.AddModelError("", "Invalid Password");
            return View(model);

        }
    }
}
using Login = RMS.Models.Login;
这将告诉控制器,您希望在登录类的帐户控制器中使用RMS.Models.Login。或者明确更改要使用该模型的位置:

RMS.Models.Login user = db.Logins.Find(LoginStudentNumber);

尝试将此添加到控制器中:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using RMS.DAL;
using RMS.Models;

namespace RMS.Controllers
{
    public class LoginController : Controller
    {
        RMSContext db = new RMSContext();


        [AllowAnonymous]
        public ActionResult Login(string returnUrl)
        {
            ViewBag.ReturnUrl = returnUrl;
            return View();
        }

        //
        // POST: /Account/Login
        [HttpPost]
        [AllowAnonymous]
        public ActionResult Login(Login model, int? LoginStudentNumber, string LoginPassword)
        {
            //Login user = db.Logins
            Login user = db.Logins.Find(LoginStudentNumber);


            if (user == null)
            {
                ModelState.AddModelError("", "Invalid User Id");

                return View(model);
            }



            if (user.LoginPassword.Equals(LoginPassword))
            {

                return RedirectToAction("Index", "Home");


            }

            ModelState.AddModelError("", "Invalid Password");
            return View(model);

        }
    }
}
using Login = RMS.Models.Login;
这将告诉控制器,您希望在登录类的帐户控制器中使用RMS.Models.Login。或者明确更改要使用该模型的位置:

RMS.Models.Login user = db.Logins.Find(LoginStudentNumber);

尝试将此添加到控制器中:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using RMS.DAL;
using RMS.Models;

namespace RMS.Controllers
{
    public class LoginController : Controller
    {
        RMSContext db = new RMSContext();


        [AllowAnonymous]
        public ActionResult Login(string returnUrl)
        {
            ViewBag.ReturnUrl = returnUrl;
            return View();
        }

        //
        // POST: /Account/Login
        [HttpPost]
        [AllowAnonymous]
        public ActionResult Login(Login model, int? LoginStudentNumber, string LoginPassword)
        {
            //Login user = db.Logins
            Login user = db.Logins.Find(LoginStudentNumber);


            if (user == null)
            {
                ModelState.AddModelError("", "Invalid User Id");

                return View(model);
            }



            if (user.LoginPassword.Equals(LoginPassword))
            {

                return RedirectToAction("Index", "Home");


            }

            ModelState.AddModelError("", "Invalid Password");
            return View(model);

        }
    }
}
using Login = RMS.Models.Login;
这将告诉控制器,您希望在登录类的帐户控制器中使用RMS.Models.Login。或者明确更改要使用该模型的位置:

RMS.Models.Login user = db.Logins.Find(LoginStudentNumber);

尝试将此添加到控制器中:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using RMS.DAL;
using RMS.Models;

namespace RMS.Controllers
{
    public class LoginController : Controller
    {
        RMSContext db = new RMSContext();


        [AllowAnonymous]
        public ActionResult Login(string returnUrl)
        {
            ViewBag.ReturnUrl = returnUrl;
            return View();
        }

        //
        // POST: /Account/Login
        [HttpPost]
        [AllowAnonymous]
        public ActionResult Login(Login model, int? LoginStudentNumber, string LoginPassword)
        {
            //Login user = db.Logins
            Login user = db.Logins.Find(LoginStudentNumber);


            if (user == null)
            {
                ModelState.AddModelError("", "Invalid User Id");

                return View(model);
            }



            if (user.LoginPassword.Equals(LoginPassword))
            {

                return RedirectToAction("Index", "Home");


            }

            ModelState.AddModelError("", "Invalid Password");
            return View(model);

        }
    }
}
using Login = RMS.Models.Login;
这将告诉控制器,您希望在登录类的帐户控制器中使用RMS.Models.Login。或者明确更改要使用该模型的位置:

RMS.Models.Login user = db.Logins.Find(LoginStudentNumber);

如果您发布了您的登录模型,这将非常有用。您尝试使用两种不同的类型,即使它们具有相同的名称。如果您发布了您的登录模型,这将非常有用。您尝试使用两种不同的类型,即使它们都具有相同的名称。如果您发布了您的登录模型,这将非常有用。您尝试使用两种不同的类型,即使它们都具有相同的名称相同的名称如果你发布了你的登录模型,这将非常有用。你尝试使用两种不同的类型,即使它们都有相同的名称