在我的MVC web应用程序中,我有linq查询从数据库中获取记录,我想使用viewmodel在视图上显示该记录。我尝试了以下代码。将linq查询结果传递给viewmodel
[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来管理所有的模型对于显示在视图(在这里,只是一个模型接入码)。
public class viewmodelPDF
{
public List<User_Master> lsusermaster { get; set; }
}
我的模型类,为此我将从数据库中获取记录。
public partial class User_Master
{
public string US_FirstName { get; set; }
public string US_LastName { get; set; }
public int US_SerialNo { get; set; }
}
//Other Models
现在我的问题是,在我的动作代码,当我试图查询结果分配给视图模型的lsusermaster
那么它会产生编译错误的初级讲座。
我不知道,为什么会出现此编译错误,我该如何将查询结果分配给viemodel属性?
可以,只是删除了;标志。由于您使用的是对象符号,因此不能在每行上使用分号,但常规逗号将起作用。或者在这种情况下,根本没有任何迹象。 – andreasnico
当我删除';'然后comiler给出错误';预计' – Johnson
移动;在最后} – andreasnico