Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在MVC中对多个值使用{get set}访问器_C#_Asp.net Mvc_Accessor - Fatal编程技术网

C# 在MVC中对多个值使用{get set}访问器

C# 在MVC中对多个值使用{get set}访问器,c#,asp.net-mvc,accessor,C#,Asp.net Mvc,Accessor,编辑:问题重构 好的,我已经回顾了我的get和set方法,但是我仍然不清楚它是如何工作的 我想要实现的是,模型由控制器填充,由它从表单中获取的值填充。然后将其发送到Db_Facade,后者比较uName和uPwd,如果它们相等,则返回访问权限,这将为整个程序范围设置 我不知道get和set声明是否正确,或者如果可能的话,它们是否可以组合在一起。这将是非常好的,因为我将在更大的数据集合中使用它,而且我非常确定我也实现了错误的声明 如果你能帮忙的话,我对访问者的了解非常有限 以下是我在控制器中的比较

编辑:问题重构

好的,我已经回顾了我的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;},它应该可以工作,所以我这样做了,现在它正在拾取有效或无效的数据,但它根本不返回访问权限?忽略最后一条评论,让它正常工作我没有正确遵循我自己的命名约定哈哈。感谢您的帮助: