簡體   English   中英

如何在ASP.NET-MVC中將匿名類型綁定到viewModel

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM