gpt4 book ai didi

c# - MVC @Html.Partial - 两种模型

转载 作者:太空宇宙 更新时间:2023-11-03 16:21:19 26 4
gpt4 key购买 nike

我正在尝试在 View 中使用部分 View 。第一个 View 需要一个模型,而部分 View 需要相同模型的 IEnumerable。我收到以下错误:

The model item passed into the dictionary is of type 'MyVDC.Models.LogBook', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable`1[MyVDC.Models.LogBook]'.

在 Controller 中:

public ActionResult Create(string phn)
{
phn = MySession.Current.PHN;
ViewBag.PHN = MySession.Current.PHN;
LogBook logBook = new LogBook();
try
{
logBook = db.LogBooks.Where(c => c.PHN == phn).OrderByDescending(x => x.Day).First();
}
catch
{
logBook.Day = DateTime.Now.Date;
logBook.PHN = phn;
}
return View(logBook);
}

局部 View 的第二个 Action :

 public ActionResult Grid()
{
string phn = MySession.Current.PHN;
return View(db.LogBooks.ToList().Where(c => c.PHN == phn));
}

第一个 View :

@model MyVDC.Models.LogBook
@{

}
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<input type="hidden" name="PHN" id="PHN" value="@ViewBag.PHN" />
<fieldset>
<legend>LogBook</legend>
@(Html.Telerik().DatePicker()
.Name("Day")

)
<p>
<input type="submit" value="Start New Logbook" class="t-button" />
</p>
</fieldset>
}
<div>
</div>
@Html.Partial("Grid")

第二种观点:

@model IEnumerable<MyVDC.Models.LogBook>

@(Html.Telerik().Grid(Model)
.Name("Grid")
.Columns(columns =>
{

columns.Bound(o => o.Day).Format("{0:MM/dd/yyyy}").Width(120);
})
.DataBinding(dataBinding => dataBinding.Ajax().Select("Grid", "LogBook"))
.Pageable()
.Sortable()
.Filterable()
)

非常感谢您的建议。求解,见下文。

最佳答案

我想通了,通过使用 ViewData 如下:在 Controller 中:

   ViewData["Log"] = db.LogBooks.ToList().Where(c => c.PHN == phn);

在 View 中:

@(Html.Telerik().Grid((IEnumerable<MyVDC.Models.LogBook>)ViewData["Log"])

希望这对某人有帮助。

关于c# - MVC @Html.Partial - 两种模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13795357/

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