我有一个使用标准模型的视图,但现在我需要在页面上添加来自两个不同模型的信息。在做了一些研究来处理这个问题后,我创建了一个 ViewModel。现在我在尝试显示我的观点时遇到错误:
DataBinding:“VirtualAuthtech.ViewModels.CMSCalculatorViewModel”不包含名为“WORKCY”的属性。
这是我的视图模型
namespace VirtualAuthtech.ViewModels
{
public class CMSCalculatorViewModel
{
public CPT CPT { get; set; }
public GPCI GPCI { get; set; }
}
}
CPT 是我最初使用的第一个模型,然后我需要添加 GPCI
这是我的观点的 ActionResult
public ActionResult _CMSCalculator()
{
string CPTCode = string.Empty;
string MOD = string.Empty;
string GPCIPayID = "31146";
string GPCIYear = "2011";
if (Request.Params["CPT1"] != null)
{
CPTCode = Request.Params["CPT1"];
MOD = Request.Params["MOD"];
}
return PartialView("_CMSCalculatorPanel", (string.IsNullOrEmpty(CPTCode) ? null as CMSCalculatorViewModel : CPTDataHelper.GetCPTGPCI(CPTCode, MOD, GPCIPayID, GPCIYear)));
}
这是从我的模型中获取数据的方法
public static CMSCalculatorViewModel GetCPTGPCI(string CPTCode, string MOD, string GPCIPayID, string GPCIYear)
{
using (var DB = new VADataContext())
{
var view = new CMSCalculatorViewModel();
if (String.IsNullOrWhiteSpace(MOD))
{
view.CPT = (from cpt in DB.CPTs
where cpt.CPT1 == CPTCode
select cpt).FirstOrDefault<CPT>();
view.GPCI = (from gpci in DB.GPCIs
where gpci.PAYID == GPCIPayID && gpci.YEAR == GPCIYear
select gpci).FirstOrDefault<GPCI>();
}
else
{
view.CPT = (from cpt in DB.CPTs
where cpt.CPT1 == CPTCode && cpt.MOD == MOD
select cpt).FirstOrDefault<CPT>();
view.GPCI = (from gpci in DB.GPCIs
where gpci.PAYID == GPCIPayID && gpci.YEAR == GPCIYear
select gpci).FirstOrDefault<GPCI>();
}
return view;
}
}
现在我的视图正在使用新的 ViewModel 并且我正在尝试显示一个字段:
<div style='float:left; width: 35px; margin: 0; padding: 0; text-align: center; color: #094ab2'>@VirtualAuthtech.CallbackPanelHelper.GetFieldNumber(Model, "WORKCY")</div>
我在这段代码中遇到错误:
public static double GetFieldNumber(object data, string fieldName)
{
object text = DataBinder.Eval(data, fieldName);
if (text == null || text.ToString() == string.Empty)
return 0;
double number = Convert.ToDouble(text);
return number;
}
这是说我的模型不包含我正在寻找的字段的属性。我是否需要告诉它查看我的视图模型的 CPT 部分?
这是我创建的第一个 ViewModel,所以我可能会搞错这一切。任何帮助我朝着正确的方向前进将不胜感激!