C# 将linq查询结果传递给viewmodel
在我的MVCWeb应用程序中,我有一个linq查询,用于查询数据库中的记录,我希望使用viewmodel在视图中显示该记录。我尝试了以下代码C# 将linq查询结果传递给viewmodel,c#,asp.net-mvc,model-view-controller,viewmodel,C#,Asp.net Mvc,Model View Controller,Viewmodel,在我的MVCWeb应用程序中,我有一个linq查询,用于查询数据库中的记录,我希望使用viewmodel在视图中显示该记录。我尝试了以下代码 [HttpGet] public ActionResult CreatePDF() { RentalAgreementEntities db = new RentalAgreementEntities(); String strSession1 = "39726-10275-6027589725",strSt
[HttpGet]
public ActionResult CreatePDF()
{
RentalAgreementEntities db = new RentalAgreementEntities();
String strSession1 = "39726-10275-6027589725",strStatus = "Y",strUserType = "L";
var q = (from um in db.User_Master
join ut in db.UserType_Master on um.US_SerialNo.ToString() equals ut.UT_UserNo
join pu in db.PropertyUser_Master on ut.UT_SerialNo.ToString() equals pu.PU_UserNo
join pr in db.Property_Master on pu.PU_PropertyNo equals pr.PR_SerialNo.ToString()
where pr.PR_MakerID == strSession1
&& ut.UT_Status == strStatus
&& ut.UT_UserType == strUserType
select new
{
um.US_FirstName,
um.US_LastName
}
).AsEnumerable().Select(um => new User_Master {
US_FirstName = um.US_FirstName.ToString(),
US_LastName=um.US_LastName
}).ToList();
var myviewmodel=new viewmodelPDF()
{
lsusermaster=q.ToList();
}
return View("pdfgenerationvw",myviewmodel);
}
我还创建了viemodel来管理要在视图上显示的所有模型(这里,只有一个模型访问代码)
现在我的问题是,在我的操作代码中,当我试图将查询结果分配给viewmodel的lsusermaster
时,它会给出编译器错误,如下所示。
我不知道为什么会抛出这个编译错误,如何将查询结果分配给viemodel属性?当您在C#中使用对象初始值设定项时,您不能使用
在属性之间,在初始值设定项末尾使用它
所以只需删除代码>(或根据建议使用,
),并将其移动到初始值设定项块的末尾
var myviewmodel=new viewmodelPDF()
{
lsusermaster=q.ToList()
};
使用,
即使没有其他属性也可以工作。。。它“看起来”很糟糕,但如果您需要新属性,则可以更轻松地添加它们。。。如果代码是最终的,我不会使用它,但这是个人偏好当您在C#中使用对象初始值设定项时,您不能使用
在属性之间,在初始值设定项末尾使用它
所以只需删除代码>(或根据建议使用,
),并将其移动到初始值设定项块的末尾
var myviewmodel=new viewmodelPDF()
{
lsusermaster=q.ToList()
};
使用,
即使没有其他属性也可以工作。。。它“看起来”很糟糕,但如果您需要新属性,则可以更轻松地添加它们。。。如果代码是最终的,我不会使用它,但这是个人偏好尝试以下方法:
var myviewmodel=new viewmodelPDF()
{
lsusermaster=q.ToList()
};
试试这个:
var myviewmodel=new viewmodelPDF()
{
lsusermaster=q.ToList()
};
你可以,就把这个,;签名由于您使用的是对象表示法,所以不能在每一行上使用分号,但使用常规逗号即可。或者在这种情况下,没有任何标志。当我删除代码>然后comiler给出错误;预期的
移动;在最后一个}之后,只需删除;签名由于您使用的是对象表示法,所以不能在每一行上使用分号,但使用常规逗号即可。或者在这种情况下,没有任何标志。当我删除代码>然后comiler给出错误;预期的
移动;最后一次之后}谢谢,它起作用了。在action codelsusermaster
中显示一条记录,但在viewmodellsusermaster
中显示零条记录。是否需要在viemodel类中创建User\u Master
model的对象来访问记录?您的代码在我看来是正确的。当您说它在viewmodel lsusermaster中显示零记录时,您是什么意思?是否在视图中使用viewmodel lsusermaster?是。我将在查看时显示来自lsusermaster
的记录。明白了,查看页面上有一个小问题,我解决了,谢谢你的回复。谢谢,它工作正常。在action codelsusermaster
中显示一条记录,但在viewmodellsusermaster
中显示零条记录。是否需要在viemodel类中创建User\u Master
model的对象来访问记录?您的代码在我看来是正确的。当您说它在viewmodel lsusermaster中显示零记录时,您是什么意思?是否在视图中使用viewmodel lsusermaster?是。我将在查看时显示来自lsusermaster
的记录。明白了,查看页面出现了小问题,我解决了,谢谢您的回复。