gpt4 book ai didi

asp.net - 将值列表放入 ASP.Net MVC 中的 View 模型中

转载 作者:行者123 更新时间:2023-12-04 18:15:22 28 4
gpt4 key购买 nike

我让自己完全困惑,如果有人能再次指出我正确的方向,我将不胜感激。

为了我自己的学习目的,我正在尝试将搜索表单添加到一个虚构的项目中。

想法是 - 我有一个日期文本框和租用天数文本框 - 当搜索被点击时 - 代码应该查找在输入日期和日期加上所需租用天数之间已预订的所有汽车. (一个)

这将生成必须从搜索的下一部分中排除的汽车列表 (B)

然后它搜索 Cars (C),并排除在 (B) 生成的列表

然后 Linq 填充 ct 对象 (D) freeCarTypes。

freeCarTypes 在这一点上,正确地保存了我正在寻找的数据 - 一个列表:

Car Type (TypeNme)
Type ID
TypeCount (how many of this car type are available)
NumSelected (set to 0 by default)

当我列出每种汽车类型时,NumSelected(我希望)将填充到模型中,并带有 TypeCount(可用)的下拉列表 - 然后它将填充模型的 NumSelected 部分。所以当帖子发布时,我有一个汽车类型列表,以及经销商感兴趣的每种类型的数量。

我的问题是,如何将汽车列表 - freeCarTypes (D) - 放入我的 SearchViewModel.TypesAvail?

是我使用 IQueryable 的 SearchViewModel 是错误的,还是我应该在这里使用其他东西 - 我正在绕圈子。

谢谢你的帮助,

标记
public class SearchViewModel
{
[Required]
public DateTime From { get; set; }
[Required]
public int Days { get; set; }
public long DealerID { get; set; }
public IQueryable<Car> Cars { get; set; }
public IQueryable<TypesAvail> TypesAvails { get; set; }
}

public class TypesAvail
{
public String TypeNme { get; set; }
public long TypeID { get; set; }
public int TypeCount { get; set; }
public int NumSelected { get; set; }
}

我的搜索 Controller
   [HttpPost]
public ActionResult Avail(SearchViewModel model, string id)
{
if (ModelState.IsValid)
{

// (A)
var dteFrom = model.From;
var dteTo = model.From.AddDays(model.Nights);

// (B)
var prebookedCars = db.Cars
.Where(car => car.Rentals.Any(rental =>
(model.DealerID == rental.Dealer_id) && (
(dteFrom >= rental.dateout && dteFrom < rental.dateback)
||
(dteTo > rental.dateout && dteTo <= rental.dateback)
||
(dteFrom <= rental.dateout && dteTo >= rental.dateback)
)));


// (C)
var freeCarTypes = db.Cars
.Where(r => r.DealerID == model.DealerID)
.Except(prebookedCars)
.GroupBy(p => p.CarType)
.Select(ct => new // (D)
{
TypeNme = ct.Key.type_name,
TypeID = ct.Key.type_id,
TypeCount = ct.Count(),
NumSelected = 0
}
);

foreach (var fr in freeCarTypes)
{
TypesAvail ta = new TypesAvail();
{
ta.NumSelected = fr.NumSelected;
ta.TypeCount = fr.TypeCount;
ta.TypeID = fr.TypeID;
ta.TypeNme = fr.TypeNme;
}

}

// This is where I'm stuck - how do I get the list above, into the ViewModel, to I can generate a list of car types, with a drop down list of how many are available

// model.TypesAvail = ta;
// model.TypesAvail = freeCarTypes;

return View(model);
}
else // model is not valid, so return the View
{
return View(model);
}
}

最佳答案

这个怎么样?

// (C)    
model.TypesAvail = db.Cars.Where(r => r.DealerID == model.DealerID)
.Except(prebookedCars)
.GroupBy(p => p.CarType)
.Select(ct => new TypesAvail // (D)
{
TypeNme = ct.Key.type_name,
TypeID = ct.Key.type_id,
TypeCount = ct.Count(),
NumSelected = 0
};

关于asp.net - 将值列表放入 ASP.Net MVC 中的 View 模型中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11845218/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com