標準モデルを使用していたビューがありますが、ページ上の 2 つの異なるモデルからの情報を追加する必要があります。これを処理するためにいくつかの調査を行った後、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 であるため、これについてはすべて間違っている可能性があります。私を正しい方向に送るための助けがあれば大歓迎です!