ViewData显示数据库列名

时间:2015-05-05 10:29:25

标签: asp.net-mvc linq-to-sql viewdata

我尝试将一些数据输入到名为“费用”的ViewData中。这是从数据库中的“PrinterCreditsCost”列获取值,并应显示该列的值。但是,列名称也显示为大括号,因此与仅显示“2”相反,它显示“{PrinterCreditCost = 2}”。有谁知道我怎么能让它只显示“2”。这将用于数学方程,所以我只需要2。

代码如下:

var result = (from a in db.tblOptions.Include(t => t.PrinterCreditCost)
where a.ID == 1
select new
{
    a.PrinterCreditCost
}
).First();
ViewData["Cost"] = result;

杰森的更新:

        public int ID { get; set; }
    public int Visible { get; set; }
    public int DeleteLicense { get; set; }
    public Nullable<int> ICTSurvey { get; set; }
    public Nullable<int> PaidWorkSurvey { get; set; }
    public Nullable<int> ICTGeneralSurvey { get; set; }
    public Nullable<int> PESSCLSurvey { get; set; }
    public Nullable<int> PastSurvey { get; set; }
    public Nullable<int> PresentSurvey { get; set; }
    public Nullable<int> Yr11Survey { get; set; }
    public Nullable<int> NewScientistCount { get; set; }
    public Nullable<int> UCASYear { get; set; }
    public Nullable<int> OnlineSurveyActive { get; set; }
    public Nullable<int> OnlineExaminationsActive { get; set; }
    public string UCASFirstHalf { get; set; }
    public string UCASSecondHalf { get; set; }
    public string SIMSManual { get; set; }
    public string SIMSApplication { get; set; }
    public string SIMSAmpark { get; set; }
    public Nullable<double> PrinterCreditFund { get; set; }
    public Nullable<int> PrinterCreditCost { get; set; }
    public string UCASIndividualFirstHalf { get; set; }
    public string UCASIndividualSecondHalf { get; set; }
    public string BookingSheetYear { get; set; }
    public Nullable<System.DateTime> InductionDate { get; set; }
    public string InductionYear { get; set; }

    public virtual ICollection<tblPrinterCredit> tblPrinterCredits { get; set; }

2 个答案:

答案 0 :(得分:0)

在查询的这一位

select new
{
    a.PrinterCreditCost
}

您需要使用PrinterCreditCost的属性,例如

select new
{
    a.PrinterCreditCost.Value
}

我不知道Value是否是您需要的属性,可能会被称为其他属性。

就目前而言,它确实看起来像您的查询返回列定义,而不是该列的值。

编辑:

我看到以下内容:

public Nullable<int> PrinterCreditCost { get; set; }

所以我很惊讶

select new
{
    a.PrinterCreditCost.Value
}

不起作用。由于它是可以为空的值,.Value属性应该返回值,而不是{ Value = 2 }。我不确定那里发生了什么。

答案 1 :(得分:0)

DateTime

不正确,但将其更改为:

var result = (from a in db.tblOptions.Include(t => t.PrinterCreditCost)
where a.ID == 1
select new
{
    a.PrinterCreditCost
}
).First();
ViewData["Cost"] = result;

(添加.Value)到ViewData行的末尾就可以了。