无法在家庭控制器中使用模型类方法
Posted
技术标签:
【中文标题】无法在家庭控制器中使用模型类方法【英文标题】: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)
【参考方案1】:
我没有在 HomeController 中使用命名空间 using sampleprojectone.Models;
。现在解决了,谢谢cornelis和rob。
【讨论】:
以上是关于无法在家庭控制器中使用模型类方法的主要内容,如果未能解决你的问题,请参考以下文章