使用asp.net MVC局部視圖我有局部視圖LeftBanner.cshtml應該從DB顯示某些數據(圖像)如何在佈局內@RenderPage
LeftBanner.cshtml
@model IEnumerable<WebApplication1.ViewModels.Banner>
<table class="table">
<tr>
<th>Test Banner!</th>
</tr>
@foreach (var banner in Model)
{
<tr>
<td>
@Html.LabelFor(b => banner.ImageDesc);
<img src="@Url.Content(banner.ImagePath)" alt="Image" />
</td>
</tr>
}
</table>
SharedController
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using WebApplication1.ViewModels;
namespace WebApplication1.Controllers
{
public class SharedController : Controller
{
public ActionResult LeftBanner()
{
List<Banner> b = new List<Banner>() {
new Banner() {ImageDesc = "Left Banner Description", ImagePath = "~/Images/money.jpg" },
new Banner() {ImageDesc = "Left Banner Description2", ImagePath = "~/Images/money.jpg" }
};
return View(b);
// return View();
}
}
}
_Layout.cshtml
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<div>
@RenderPage("~/Views/Shared/LeftBanner.cshtml")
</div>
</body>
</html>
的錯誤
The model item passed into the dictionary is of type 'WebApplication1.ViewModels.EmployeeListViewModel', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable`1[WebApplication1.ViewModels.Banner]'.
在Asp.net的Web表單用戶控件ASCX可以是獨立的,真正可重複使用。
請幫我理解,爲什麼我不能封裝我的局部視圖? 這不是真正的重用, 如果我每次使用它都必須傳遞到局部視圖模型。 它可以是獨立的,並且不通過模型就可以訪問數據庫?
非常感謝!
將此添加到佈局頁面的頂部@model WebApplication1.ViewModels –
Hello, 我將@model WebApplication1.ViewModels.Banner添加到佈局頁面。現在我得到了另一個錯誤:傳入字典的模型項目類型爲'WebApplication1.ViewModels.EmployeeListViewModel',但是這個字典需要一個'WebApplication1.ViewModels.Banner'類型的模型項目。 –
檢查我的波紋管答案,並讓我知道。 –