[英]How to call a class in Mvc action if a class within the another class
在这里,我在另一个班级写了一个班级,但是当我尝试访问该班级时,为什么我不能上那个班级
namespace ImageWithallCtrls.Models
{
public class GeneralAssClass
{
public class AccessClass2 :BaseAccessClass
{
private GeneralAssClass GenAss;
public string L_Name { get; set; }
}
public class AccessClass1 : BaseAccessClass
{
public string Middle_Name { get; set; }
public string Gender { get; set; }
}
}
}
Home.cs
public ActionResult AbsAssClass(GeneralAssClass GenAss)
{
Access1 ass1 = new Access1()
{
F_Name = GenAss. // HereI'im getting Equal, GetHash, Gettype, Tostring why not my class names("AccessClass2 ","AccessClass1")
};
Access2 ass2 = new Access2()
{
};
return View();
}
这里有两个问题。
首先,您似乎在滥用内部类。
内部类只能在声明它们的外部类中使用,因此它们应该始终是私有的。
如果您希望在外部类之外访问该类,则它应该是普通类,而不是内部类。
其次,您滥用了对象初始化语法。
使用对象初始化程序,您可以在创建时将值分配给对象的任何可访问字段或属性,而不必调用构造函数,后跟赋值语句行。
Access1 ass1 = new Access1()
{
F_Name = GenAss. // HereI'im getting Equal, GetHash, Gettype, Tostring why not my class names("AccessClass2 ","AccessClass1")
};
括号{和}之间的位允许您设置ass1实例上的字段和属性。
与写作相同:
Access1 ass1 = new Access1();
ass1.F_Name = GenAss. // HereI'im getting Equal, GetHash, Gettype, Tostring why not my class names("AccessClass2 ","AccessClass1")
GenAss
在此范围内不存在,因此您无法访问它。
要解决此问题,您应该通读正在使用的功能,研究它们的最佳实践,然后重组代码,使其遵循这些最佳实践,并且最重要的是,可以正常工作!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.