我正在创建一个使用ASP.NET MVC 4和Entity Framework租用足球场的应用程序。遗憾的是,我不知道如何解决一周中不同日期和时间的田地价格问题。我制作了一个模型(我在下面展示),但我不确定这是否是解决问题的最佳方法。 让我再解释一下这个应用程序。这些是该问题最相关的实体:
SportCenter
public class SportCenter
{
public int SportCenterID { get; set; }
public string Name{ get; set; }
public virtual IList<OpeningHour> OpeningHours { get; set; }
public virtual ICollection<Field> Fields { get; set; }
public virtual ICollection<Booking> Bookings { get; set; }
}
预订
public class Booking
{
public int BookingID { get; set; }
[DataType(DataType.Date)]
public DateTime Day { get; set; }
public string StartHour { get; set; }
public string EndHour { get; set; }
public int SportCenterID { get; set; }
public int ClientID { get; set; }
public int FieldID { get; set; }
public virtual SportCenter SportCenter { get; set; }
public virtual Client Client { get; set; }
public virtual Field Field { get; set; }
}
字段和价格
public class Field
{
public int FieldID { get; set; }
public String Name { get; set; }
public virtual ICollection<Price> Prices { get; set; }
}
public class Price
{
public int PriceID { get; set; }
public int Day { get; set; }
public string StartingHour { get; set; }
public decimal Value { get; set; }
}
更清楚的是,当运动中心开放时,每个场地的每一天和每小时都有不同的价格。多数民众赞成将产生一个像这样的表(我有一个很好的形象,但我不能附上,因为我的声誉)
---------- Mon - Tue - Wed - Thur - Fri - Sat - Sun
-----------------------------------------------------
13:00 --- Close - Close - Close - Close - Close - Close
14:00 --- Close - Close - Close - Close - Close - Close
15:00 --- $400 - $50 - $23 - $22 - $90 - $90 - $90
16:00 --- $300 - $70 - $34 - $34 - $90 - $90 - $90
17:00 --- $240 - $60 - $53 - $55 - $90 - $90 - $90
18:00 --- $320 - $78 - $85 - $96 - $40 - $90 - $90
我可以达到这一点,也许是一个公认的解决方案,但我不知道如何在.cshtml页面中表示这一点,并让用户查看和编辑内容。总而言之,问题是两个:
这是价格模型结构问题的最佳解决方案(或至少是可接受的解决方案)吗?
如何在浏览器中表示此信息,让用户查看和编辑一周中每天和每小时的价格。
谢谢!
PD:抱歉我的英文
编辑: 现在我可以上传,谢谢;)
EDIT2:
这就是我实际上对前端的看法。与其他情况相同,不知道这是向用户表示信息的最佳方式,还是我遗漏了某些内容。
<div>
<table>
<tr>
<th></th>
<th>MON</th>
<th>TUE</th>
<th>WED</th>
<th>THU</th>
<th>FRI</th>
<th>SAY</th>
<th>SUN</th>
</tr>
<tr>
<th>09:00</th>
<td><input value="300" type="text"/></td>
<td><input value="300" type="text" /></td>
<td><input value="300" type="text" /></td>
<td><input value="300" type="text" /></td>
<td><input value="300" type="text" /></td>
<td><input value="300" type="text" /></td>
<td><input value="300" type="text" /></td>
</tr>
</table>
</div>