我正在TagHelper类中生成HTML Table Rows,以添加到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?我最初的想法是一个paremeterized构造函数,但我不知道如何在这种特殊情况下实现它。我更像是一个PHP开发人员,所以我不太熟悉它在ASP.NET设置中的工作方式。
答案 0 :(得分:0)
您需要从Survey
返回Report
的链接。没有Survey
代码,那个很难说清楚。您可以做的是将报告保存为调查中的参考,并从您的代码中调用该报告。
你现在所做的是创建一个新的Report
,这样的默认id始终为零。
因此,在调查中创建报告参考:
public class Survey {
public Report Report { get; set; }
}
将调查实例与对报告实例的引用相关联:
var report = GetReport();
var survey = GetSurvey();
survey.Report = report;
现在,您可以从报告属性中检索报告数据:
foreach(Survey survey in listSurv) {
innerData.InnerHtml.Append(survey.Report.Id.ToString());
}