在MVC中使用{get set}多个值的访问器

时间:2013-12-09 06:36:10

标签: c# asp.net-mvc accessor

编辑:问题重建。

好的,我已经重新审视了我的get和set方法,但我仍然不清楚它是如何工作的。

我想要实现的是模型由Controller填充,从它从表单中获取的值。然后将其发送到Db_Facade,它比较uName和uPwd,如果它们相等则返回ACCESS,它将被设置为整个程序范围。

我不知道get和set声明是否正确完成,或者它们是否可以捆绑在一起(如果这可能会很好,因为我会将它用于更大的数据集合),而我我很确定我也把它们误实了。

如果您能提供帮助,我对Accessors的了解非常有限。

这是我的Controller中的比较登录方法:

    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);
    }
}

1 个答案:

答案 0 :(得分:0)

2个问题/提示

1。)你在哪里打电话给getLoginACCESS()

2.。)为什么您认为Db_Facade能够从您的班级getACCESS访问User_Controller

解决方案是将您的getLoginACCESS()转移到getLoginACCESS(User_Model getACCESS),然后在您的Compare_Login(User_Login_View Login_View)中将其称为if Db_Facade.etLoginACCESS(getACCESS);