C# 在MVC中对多个值使用{get set}访问器
编辑:问题重构 好的,我已经回顾了我的get和set方法,但是我仍然不清楚它是如何工作的 我想要实现的是,模型由控制器填充,由它从表单中获取的值填充。然后将其发送到Db_Facade,后者比较uName和uPwd,如果它们相等,则返回访问权限,这将为整个程序范围设置 我不知道get和set声明是否正确,或者如果可能的话,它们是否可以组合在一起。这将是非常好的,因为我将在更大的数据集合中使用它,而且我非常确定我也实现了错误的声明 如果你能帮忙的话,我对访问者的了解非常有限 以下是我在控制器中的比较登录方法:C# 在MVC中对多个值使用{get set}访问器,c#,asp.net-mvc,accessor,C#,Asp.net Mvc,Accessor,编辑:问题重构 好的,我已经回顾了我的get和set方法,但是我仍然不清楚它是如何工作的 我想要实现的是,模型由控制器填充,由它从表单中获取的值填充。然后将其发送到Db_Facade,后者比较uName和uPwd,如果它们相等,则返回访问权限,这将为整个程序范围设置 我不知道get和set声明是否正确,或者如果可能的话,它们是否可以组合在一起。这将是非常好的,因为我将在更大的数据集合中使用它,而且我非常确定我也实现了错误的声明 如果你能帮忙的话,我对访问者的了解非常有限 以下是我在控制器中的比较
public static void Compare_Login(User_Login_View Login_View)
{
User_Model getACCESS = new User_Model(); // Creates a new oject of User_Model
getACCESS.Name = Login_View.txtUsername.Text; //Populates the Model from the Login View
getACCESS.Pwd = Login_View.txtPassword.Text;
if (getACCESS.ACCESSLEVEL > 0)
{
Login_View.Close();
}
else
{
Login_View.lblError.Visible = true;
}
Login_View.Menu.SetMenuView();
}
这是我的模型:
public class User_Model
{
public string Name
{
get
{
return Db_Facade.uName;
}
set
{
Db_Facade.uName = value;
}
}
public string Pwd
{
get
{
return Db_Facade.uPwd;
}
set
{
Db_Facade.uPwd = value;
}
}
public int ACCESSLEVEL
{
get
{
return Db_Facade.ACCESS;
}
set
{
Db_Facade.ACCESS = value;
}
}
}
以下是虚拟数据库比较:
class Db_Facade
{
public static string uName;
public static string uPwd;
public static string cPwd;
public static int ACCESS;
public static void getLoginACCESS()
{
uName = "paul";
uPwd = "pwd";
ACCESS = 1;
/* I get a "getACCESS does not exist" error here
if (uName == getACCESS.Name && uPwd == getACCESS.Pwd)
{
getACCESS.ACCESSLEVEL = ACCESS;
}
else
{
getACCESS.ACCESSLEVEL = 0;
}
*/
}
}
我不知道是否需要,但这是我的观点
public partial class User_Login_View : Form
{
public Menu_View Menu { get; set; }
public User_Login_View()
{
InitializeComponent();
}
private void btnLogin_Click(object sender, EventArgs e)
{
User_Controller.Compare_Login(this);
}
}
2个问题/提示
一,。您的getLoginACCESS在哪里
二,。为什么您认为Db_Facade能够从类用户_控制器访问GetAccess
解决方案是将getLoginACCESS修改为getLoginACCESSUser_Model getACCESS,然后在您的if like Db_Facade.etLoginACCESSgetACCESS之前在您的Compare_LoginUser_Login_View Login_View Login_View中调用它 你的问题是什么?我不明白你的代码试图做什么。向我们展示你的视图模型。从这里我可以收集到。。。你完全错了。当我点击表单上的登录按钮时,比较登录方法将填充模型。然后我想将模型发送到Db_Facade,比较uName和uPwd的值,然后返回要为SetMenuView方法设置的访问变量。这就解释了吗?你遇到了什么错误/异常?好的,这就解决了我的错误,谢谢你提醒我这些电话。由于某些原因,比较不能正常工作,它返回ACCESS 1,有无正确的uName和uPwd,但我会解决这个问题。但是我不认为这是正确地实现了访问器?这是因为您正在覆盖您的Db_Facade用户_模型中的值,并且Db_Facade在任何时候都有相同的值来避免这种情况,将您的{get{…}set{..}替换为{get;set;},它应该可以工作,所以我这样做了,现在它正在拾取有效或无效的数据,但它根本不返回访问权限?忽略最后一条评论,让它正常工作我没有正确遵循我自己的命名约定哈哈。感谢您的帮助: