我正在使用MVC5,我试图在int中显示每个数字1个图像,例如:
如果评分为5,则显示5颗星。
我找到了一种方法来做到这一点,但这是一个非常糟糕的工作,我更愿意理解如何在这个问题上改进foreach循环。
CODE:
public class RestaurantReview
{
public int Id { get; set; }
public string Name { get; set; }
public string City { get; set; }
public string Country { get; set; }
public int Rating { get; set; }
}
=============================================== ==========
public ActionResult Index()
{
var model =
from r in _reviews
orderby r.Name descending
select r;
return View(model);
}
=============================================== ==========
数据源示例:
static List<OdeToFood.Models.RestaurantReview> _reviews = new List<RestaurantReview>
{
new RestaurantReview {
Id = 1,
Name = "Cinnamon Club",
City = "London",
Country = "UK",
Rating = 10,
},
答案 0 :(得分:0)
foreach(var item in model.items){
<span id="star@(item.rating)"> </span>
<span>@mitem.name</span>
}
我不同意这种硬编码解决方案,但你可以这样做:
var model =
from r in _reviews
orderby r.Name descending
select new { name = r.name, image = "star" + r.rating, field3 = r.blah, field4 = r.blahblah }
但是,如下所述,您更改图像,必须更改代码,如果更改图像位置,则还必须更改代码。如果您想更改评级。你必须改变我们的代码。
另一个解决方案是客户端:http://wbotelhos.com/raty
答案 1 :(得分:0)
一个简单的for循环可以做到这一点:
for (i=0; i < item.Rating; i++) {
<img src="star">
}