在ASP中通过参数化构造函数访问其他类的属性.净MVC
本文关键字:其他 属性 MVC 访问 构造函数 ASP 参数 | 更新日期: 2023-09-27 18:09:00
我正在努力在TagHelper类中生成HTML表行,以添加到DataTables表中,该表在隐藏的子行中显示几个按钮(单击给定行时显示)。对于其中一个按钮,我需要来自不同类中的属性的值(对应于单独数据库表中的值)。我不确定如何去引用其他类,使其具有给定调查的正确值。类的布局是这样的:
我正在使用的TagHelper类的相关片段:
public IEnumerable<Survey> listSurv { get; set; }
foreach(Survey surv in listSurv) {
//Row Construction Happening Before the Button
//I need to reference the Report class here to get the ReportID (Id in the Report class).
//Currently, I have this, but it always returns 0
Report r = new Report();
innerData.InnerHtml.Append(r.Id.ToString()); //innerData is a TagBuilder element that's previously constructed
}
报告类:
public class Report()
{
public int Id {get; set;}
public virtual Survey Survey {get; set;}
public string DLLink {get; set;}
public DateTime Date_Uploaded {get; set;}
}
是否有某种方法可以在TagHelper类中实例化Report类,使我能够访问与该特定调查相对应的Id ?我最初的想法是一个参数化的构造函数,但我不确定如何在这种特殊情况下实现它。我是一个PHP开发人员,所以我不太熟悉这将如何在ASP中工作。网络设置。
您需要一个从Survey
到Report
的链接。没有Survey
代码,这是很难告诉。您可以做的是将报告保存为调查中的引用,并从代码中调用它。您现在所做的是创建一个新的Report
,这样它的默认id总是为0。
在调查中创建一个报告引用:
public class Survey {
public Report Report { get; set; }
}
用对报告实例的引用链接调查实例:
var report = GetReport();
var survey = GetSurvey();
survey.Report = report;
现在您可以从report属性中检索报表数据:
foreach(Survey survey in listSurv) {
innerData.InnerHtml.Append(survey.Report.Id.ToString());
}