我在某个网站上为某人工作并遇到一个小问题。我承认我对MVC和EF有点新意,所以我遇到了这个问题。我的索引视图显示了我的产品,但它显示在一个直接的上下列表中,就像我创建它应该做的表一样。
我想要做的就是创建一个画廊,在那里他们并排连续说4,然后继续前进到下一行等等(上帝,我知道这是在制作感)。这是我的观点
@model IEnumerable<AccessorizeForLess.ViewModels.DisplayProductsViewModel>
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Index</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table class="table">
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Name)<br />
<img src="@item.Image.ImagePath"/>
</td>
<td>
@Html.DisplayFor(modelItem => item.Price)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id = item.Id }) |
@Html.ActionLink("Details", "Details", new { id = item.Id }) |
@Html.ActionLink("Delete", "Delete", new { id = item.Id })
</td>
</tr>
}
</table>
当然,它正在做它应该做的事情。有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
如果有人接近这个问题,这就是我想出来的,它的工作方式与我一直在寻找:
@model IEnumerable<AccessorizeForLess.ViewModels.DisplayProductsViewModel>
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Products</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
@foreach (var item in Model)
{
<div style="float:left; width:25%">
@Html.DisplayFor(modelItem => item.Name)<br />
<input id="Hidden1" type="hidden" value="@item.Id" />
<div>$@Html.DisplayFor(modelItem => item.Price)</div>
<div><img src="@item.Image.ImagePath" /></div>
<div> </div>
<div>Quantity: <input type="text" id="quantity" style="width:50px;" /></div>
<div>@Html.ActionLink("Details", "Details", new { id = item.Id })</div>
</div>
}
我确实有一个问题,在我的控制器中如何将价格格式化为货币,我试过这个:
IEnumerable<DisplayProductsViewModel> model = products.Select(p => new DisplayProductsViewModel()
{
Id = p.ProductId,
Name = p.ProductName,
Image = p.ProductImage,
Price = string.Format("{0:C}",p.ProductPrice)
}).ToList();
得到错误:
LINQ to Entities无法识别方法'System.String 格式化(System.String,System.Object)'方法,而这个方法不行 被翻译成商店表达