【问题标题】:Unable to use model class method in home Controller无法在家庭控制器中使用模型类方法
【发布时间】:2020-08-11 13:45:18
【问题描述】:

家庭控制器

    [HttpGet]
    public ActionResult Login()
    {
        return View();
    }
    [HttpPost]
    public ActionResult Login(Login l)
    {
        if (ModelState.IsValid)
        {
            if (l.CheckUser(l.UserName, l.Password))
            {
                return RedirectToAction("Home/Home");
            }
            else
            {
                Response.Write("Invalid User");
                return View();
            }
        }
        else
        {
            return View();
        }

    }

模型类(登录)

 namespace sampleprojectone.Models
 {
    public class Login
    {
        [Required(ErrorMessage ="Username must not be empty")]
        [Display(Name ="Username")]
        public string Username { get; set; }
        [Required(ErrorMessage = "Password must not be empty")]
        [Display(Name = "Password")]
        public string Password { get; set; }
        public bool CheckUser(string username,string password)
           {
                SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["Constr"].ToString());
                con.Open();
                SqlCommand cmd = new SqlCommand("proc_checklogin", con);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("@username", username);
                cmd.Parameters.AddWithValue("@password", password);
                bool b = Convert.ToBoolean (cmd.ExecuteScalar());
                return b;
           }
     }
 }

错误

严重性代码描述项目文件行抑制状态 错误 CS1061“Login”不包含“CheckUser”的定义,并且找不到接受“Login”类型的第一个参数的可访问扩展方法“CheckUser”(您是否缺少 using 指令或程序集引用?) sampleprojectone G: \King\Projects\sampleprojectone\sampleprojectone\Controllers\HomeController.cs 35 活动

【问题讨论】:

  • 我不确定,但我认为您还没有正确引用您的 Login 类可能是什么原因。尝试将登录函数命名为与登录类不同的名称... public ActionResult Login() --> public ActionResult LoginAction() public ActionResult Login(Login l) --> public ActionResult LoginWithCreds('Login l') 再试一次。如果找不到你的 Login 模型,可能是你没有正确引用它
  • 您是否可能有一个 Login 控制器,因此您需要在 Login 方法中完全限定 Login 对象? public ActionResult Login(sampleprojectone.Models.Login l)

标签: c# .net model-view-controller layout asp.net-mvc-5


【解决方案1】:

我没有在 HomeController 中使用命名空间 using sampleprojectone.Models;。现在解决了,谢谢cornelis和rob。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-05
    • 2021-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-03
    相关资源
    最近更新 更多