[英]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.