请参阅 ASP.NET C# 中的 MVC 索引页面,使用 URL 中没有 ID 的模型中的数据进行填充
See ASP.NET MVC Index page in C# be populated with data from model without ID in the URL
在我的应用程序中,我在 C# 中使用 Entity Framework 6 和 ASP.NET MVC。
我有一个 table,其中包含我计划用于填充我的索引页面的记录。如何在不让系统将记录的 ID 添加到 URL 的情况下填充索引页。请参见下面的示例。我已经查看了路由,但是通过添加自定义路由,您不得不向 url 添加更多文本,而我只想让 URL 显示为 example.com。我不想也不需要 example.com/MenuRecords/Details/20
让用户看到。
所以 example.com
应该在 HomeController
的索引视图中从下面的模型加载以下数据。
index.cshtml
页面调用模型数据如下:
@model example.Models.tblMenuRecords
@Model.ThisWeeksBestDrink
@Model.ThisWeeksBestAppetizer
@Model.ThisWeeksBestDesert
@Model.ThisWeeksBestLunchSpecial
这是控制器操作方法:
public ActionResult Index()
{
return View();
}
如何让它在 Index
页面上正常工作?因为这是从模型调用数据的主页,所以我不能让 URL 除了 example.com 之外的任何东西......但我确实理解,当从模型调用数据时,你确实需要一些有点像 ID,但我真的不明白该怎么做。
我知道有一个包含此默认路由的路由配置,它允许您仅显示域名...但是当您尝试从数据库加载数据时,这是如何完成的。
routes.MapRoute("Default", "{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = UrlParameter.Optional }
这是将 tblMenuRecords
的实例传递给视图的正确方法吗?
public ActionResult Index()
{
tblMenuRecords tblMenuRecords = db.tblMenuRecords();
return View(tblMenuRecords);
}
I think your view is missed with model. View code should be like below
@model Models.MenuRecords
@{
ViewBag.Title = "Menu Records";
}
<h2>Details</h2>
<div>
<h4>Menus</h4>
<hr />
<table>
<tr>
<td>
@Html.DisplayFor(model => model.ThisWeeksBestDrink)
</td>
<td>
@Html.DisplayFor(model => model.ThisWeeksBestLunchSpecial)
</td>
</tr>
</table>
</div>
I hope, it will help you.
我认为你必须修正这个动作
public ActionResult Index()
{
tblMenuRecords tblMenuRecords = db.tblMenuRecords.FirstOrDefault();
return View(tblMenuRecords);
}
在我的应用程序中,我在 C# 中使用 Entity Framework 6 和 ASP.NET MVC。
我有一个 table,其中包含我计划用于填充我的索引页面的记录。如何在不让系统将记录的 ID 添加到 URL 的情况下填充索引页。请参见下面的示例。我已经查看了路由,但是通过添加自定义路由,您不得不向 url 添加更多文本,而我只想让 URL 显示为 example.com。我不想也不需要 example.com/MenuRecords/Details/20
让用户看到。
所以 example.com
应该在 HomeController
的索引视图中从下面的模型加载以下数据。
index.cshtml
页面调用模型数据如下:
@model example.Models.tblMenuRecords
@Model.ThisWeeksBestDrink
@Model.ThisWeeksBestAppetizer
@Model.ThisWeeksBestDesert
@Model.ThisWeeksBestLunchSpecial
这是控制器操作方法:
public ActionResult Index()
{
return View();
}
如何让它在 Index
页面上正常工作?因为这是从模型调用数据的主页,所以我不能让 URL 除了 example.com 之外的任何东西......但我确实理解,当从模型调用数据时,你确实需要一些有点像 ID,但我真的不明白该怎么做。
我知道有一个包含此默认路由的路由配置,它允许您仅显示域名...但是当您尝试从数据库加载数据时,这是如何完成的。
routes.MapRoute("Default", "{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = UrlParameter.Optional }
这是将 tblMenuRecords
的实例传递给视图的正确方法吗?
public ActionResult Index()
{
tblMenuRecords tblMenuRecords = db.tblMenuRecords();
return View(tblMenuRecords);
}
I think your view is missed with model. View code should be like below
@model Models.MenuRecords
@{
ViewBag.Title = "Menu Records";
}
<h2>Details</h2>
<div>
<h4>Menus</h4>
<hr />
<table>
<tr>
<td>
@Html.DisplayFor(model => model.ThisWeeksBestDrink)
</td>
<td>
@Html.DisplayFor(model => model.ThisWeeksBestLunchSpecial)
</td>
</tr>
</table>
</div>
I hope, it will help you.
我认为你必须修正这个动作
public ActionResult Index()
{
tblMenuRecords tblMenuRecords = db.tblMenuRecords.FirstOrDefault();
return View(tblMenuRecords);
}