在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中工作。网络设置。

在ASP中通过参数化构造函数访问其他类的属性.净MVC

您需要一个从SurveyReport的链接。没有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());
}