![](/img/trans.png)
[英]Use viewmodel to bind data with html.dropdownlistFor in asp.net-MVC
[英]How to bind anonymous type to viewModel in ASP.NET-MVC
我需要將匿名類型輸出綁定到viewmodel才能在視圖上傳遞它。 我需要將復選框與模型值綁定在一起,我正在使用join來獲取值,但不知道如何將其傳遞給視圖。 我的加入查詢是
var v = (from pd in ge.Costs
join od in ge.Services on pd.ServiceId equals od.ServiceId
join ct in ge.ServiceTypes on pd.ServiceTypeId equals ct.ServiceTypeId
where pd.ServiceTypeId.Equals(2)
select new
{
pd.CostId,
od.serviceName,
ct.ServiceTypeValue,
pd.ServiceCost
}).ToList();
我的viewModel是
public class costViewModel
{
public int CostId { get; set; }
public string serviceName { get; set; }
public string ServiceTypeValue { get; set; }
public string ServiceCost { get; set; }
}
我需要將CostId,serviceName,ServiceTypeValue,ServiceCost綁定到視圖模型以在視圖中傳遞它
在視圖上檢索模型是
@foreach (var item in Model)
{
<input type="checkbox" name="@item.serviceName" id="@item.serviceName" value="@item.ServiceCost">@item.
}
請幫忙。
不要讓您的選擇查詢匿名,只需將您的選擇與viewModed一起傳遞
var v = (from pd in ge.Costs
join od in ge.Services on pd.ServiceId equals od.ServiceId
join ct in ge.ServiceTypes on pd.ServiceTypeId equals ct.ServiceTypeId
where pd.ServiceTypeId.Equals(2)
select new costViewModel()
{
CostId = pd.CostId,
serviceName = od.serviceName,
ServiceTypeValue = ct.ServiceTypeValue,
ServiceCost = pd.ServiceCost
}).ToList();
view(v);
然后在視圖模型中傳遞v
並在查看頁面上使用
@model IEnumerable<project.ViewModel.costViewModel>
嘗試使用costViewModel
將值傳遞到您的View中,因此,簡而言之,不要讓您的select
匿名,創建一些所需的對象並將v
傳遞給View:
在您的控制器中:
var v = (from pd in ge.Costs
join od in ge.Services on pd.ServiceId equals od.ServiceId
join ct in ge.ServiceTypes on pd.ServiceTypeId equals ct.ServiceTypeId
where pd.ServiceTypeId.Equals(2)
select new costViewModel()
{
CostId = pd.CostId,
serviceName = od.serviceName,
ServiceTypeValue = ct.ServiceTypeValue,
ServiceCost = pd.ServiceCost
}).ToList();
return View(v);
並在您的視圖中:
@model List<costViewModel>
var v = (from pd in ge.Costs
join od in ge.Services on pd.ServiceId equals od.ServiceId
join ct in ge.ServiceTypes on pd.ServiceTypeId equals ct.ServiceTypeId
where pd.ServiceTypeId.Equals(2)
select new costViewModel
{
CostId = pd.CostId,
serviceName = od.serviceName,
ServiceTypeValue = ct.ServiceTypeValue,
ServiceCost = pd.ServiceCost
}).ToList();
或匿名
var v = (from pd in ge.Costs
join od in ge.Services on pd.ServiceId equals od.ServiceId
join ct in ge.ServiceTypes on pd.ServiceTypeId equals ct.ServiceTypeId
where pd.ServiceTypeId.Equals(2)
select new
{
CostId = pd.CostId,
serviceName = od.serviceName,
ServiceTypeValue = ct.ServiceTypeValue,
ServiceCost = pd.ServiceCost
}).ToList();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.