通过ASP.NET MVC中的参数化构造函数访问其他类的属性
问题描述:
我正在努力生成TagHelper类中的HTML表格行,以将其添加到在隐藏子行中显示几个按钮的DataTables表中(点击给定行)。对于其中一个按钮,我需要来自不同类中属性的值(对应于单独数据库表中的值)。我不知道如何去引用其他课程,以便它对于给定的调查具有正确的价值。类布局是这样的:从TagHelper类通过ASP.NET MVC中的参数化构造函数访问其他类的属性
相关片段,我在工作:
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
}
Report类:
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类中报告类,让我可以访问与特定调查对应的Id。我最初的想法是一个paremeterized构造函数,但我不知道如何去实现,在这种情况下。我更像是一名PHP开发人员,所以我不太了解ASP.NET如何在ASP.NET设置中工作。
答
您需要从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());
}
“访问与特定调查相对应的Id” - 因此“Survey”类本身具有它自己的Id ,这个Id和Report类的ID一样吗? – Quantic
'Survey'和'Report'之间的关系是什么?向我们展示更多你的'TagHelper'片段 - 那是在一个方法,构造函数中,在哪里?可能还会向我们展示您的“Survey”课程。 – Jasen