【发布时间】:2015-04-11 21:52:21
【问题描述】:
我有一个 ASP.NET MVC4 中的虚构网站,旨在模拟私人飞机租赁公司的机票预订系统。但是,在实现我想要的功能时,我有点挣扎,其中之一是使用下拉菜单将数据存储到另一个数据库中
为了让您更好地了解我的真正目标
- 用户登录网站
- 转到航班页面
- 查看航班
- 最终进入预订页面
然后
- 从下拉菜单中选择他们想要的航班
- 输入他们要购买的门票数量。 (下拉菜单有效,但未执行重置)
- 然后用户数据库应该检查用户的年龄(已经
存储在数据库中)在 18 到 64 之间
- 如果超出该范围,将出现错误消息 并阻止他们订票。
- 如果在该范围内,剩余座位数量应减少“购买”的门票数量
还有
- 如果用户尚未登录,预订页面应提示用户登录。
这让我很困惑。
我有两个与航班相关的页面:
第 1 页(
Flights.cshtml- 显示可用航班表):http://gyazo.com/2ab67e35bdd1967e4a24706e398ba759第 2 页(
BookFlight显示一个下拉菜单,允许用户选择他们想要的航班):http://gyazo.com/67948e5e8be82c72f7ee0914dfa9b5f6
(解决方案资源管理器中项目文件的屏幕截图)
这是我与航班表相关的相关文件(第 1 页)
https://gist.github.com/anonymous/144ed06e1d4f2011161e
第 2 页从第 1 页的列表中读取,这是如何完成的:
查看:
@model List<Project_v3.Models.FlightsTable>
@{
ViewBag.Title = "Book Flight | Open Airlines";
Layout = "~/Views/Shared/_MyLayout.cshtml";
}
<h2>Book A Flight</h2>
<select id='SelectedFlight' name='SelectedFlight'>
@foreach (var flight in Model)
{
<option value='@flight.FlightID'>@String.Format("{0} to {1}", flight.Departure, flight.Arrival)</option>
}
</select>
控制器:
public ActionResult BookFlight()
{
using (var context = new FlightsDBEntities())
{
// Get all of the flights within your table
var flights = context.FlightsTables.ToList();
// Pass the flights to your View
return View(flights);
}
}
我的问题是
例如,如何使下拉菜单中的数据成为另一个名为“Booking”的数据库表中的字段? (我还没有制作这张桌子)。如果这有意义吗?
如何获取用户选择的信息(从下拉列表中)并通过按下按钮进行存储?这甚至可能吗?任何人都可以根据我上面列出的代码向我展示一个可行的示例吗?
【问题讨论】:
-
您将
[Authorize]属性应用于该方法,以确保用户在未经授权的情况下重定向到您的登录页面。您在 GET 方法中检查用户年龄(在显示预订页面之前),如果他们的年龄无效,则重定向到错误页面。使用视图模型和 html 助手来生成您的控件。我强烈建议您访问 MVC 站点并完成基本教程。
标签: c# sql database asp.net-mvc-4 razor