표준 모델을 사용하는 뷰가 있지만 이제는 페이지의 두 모델에서 정보를 추가해야합니다. 이 문제를 해결하기 위해 연구를 한 후에 ViewModel을 만들었습니다. 이제 내 말을 보여주기 위해 오류가 발생했습니다 :ASP.NET MVC 3 ViewModel 객체의 DataBinder.Eval에서 "속성을 포함하지 않습니다."
DataBinding : 'VirtualAuthtech.ViewModels.CMSCalculatorViewModel'에 'WORKCY'라는 이름의 속성이 없습니다. 여기
내보기에 대한 ActionResult입니다여기
namespace VirtualAuthtech.ViewModels
{
public class CMSCalculatorViewModel
{
public CPT CPT { get; set; }
public GPCI GPCI { get; set; }
}
}
CPT 내가 원래 사용 된 첫 번째 모델 내 뷰 모델이고 그때 GPCI을 추가 할 필요가
여기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;
}
}
지금 내보기는 새로운 뷰 모델을 사용하고 난 필드 표시하기 위해 노력하고있어 :
<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이므로이 모든 잘못을 저지르고있을 수도 있습니다. 올바른 방향으로 나를 보내 주시면 큰 도움이 될 것입니다!
나는 오류가 정확하다고 말할 것이다. 모델 (CMSCalculatorViewModel)에는 CPT와 GPCI의 두 가지 속성이 있으며 둘 다 "작업장"이 아닙니다. –
WORKCY는 CPT 모델의 속성이므로이를 인식하기 위해 변경해야하는 것은 무엇입니까? –