动态创建具有不同url的网页
本文关键字:url 网页 创建 动态 | 更新日期: 2023-09-27 18:02:27
没有找到这个…也许我看错了。这就是我的观点:
<div class="jumbotron">
@foreach (DataRow dr in ds.Tables[0].Rows)
{
<ul>
<li>@dr["Name"].ToString() - @dr["Distance"].ToString()</li>
</ul>
}
</div>
我想创建一个新的页面(使用c#和MVC)的每个项目符号点与不同的URL取决于名称。我该怎么做呢?我是否使用ActionLink?它与路由有关吗?
基本上假设你有一个餐馆列表,我想要它,当你点击一个餐馆时,它会把你带到一个不同的URL,比如yourdomain.com/restaurant-name
,然后我想用一些HTML填充那个页面。我该怎么做呢?
默认路由的url格式为:domain.com/controller/action/id
因此,如果你编写一个名为RestaurantsController
的控制器和一个Action View
,那么你可以将你想要查看的餐厅的id传递给它…因而:
是的,这是VB,我相信你可以翻译
Public Function View(Optional ByVal id As String) As ActionResult
' Fetch your restaurant data...
Dim model As Restaurant = RestaurantRepository.GetRestaurantById(id)
Return View(model)
End Function
通过:domain.com/Restaurants/View/whatever-your-restaurant-id-is
访问动作然后在你的razor视图中添加链接,你可以这样做:
@Html.ActionLink("Link text here", "View", "Restaurants",
htmlAttributes:=Nothing, routeValues:= New With {.id = dr["Name"]})
视图:
<div class="jumbotron">
@foreach (DataRow dr in ds.Tables[0].Rows)
{
<ul>
<li>@Html.ActionLink(@dr["Name"].ToString() + "-" + @dr["Distance"].ToString(), "ShowMenu", routeValues: new {id = dr["Name"] })</li>
</ul>
}
</div>
控制器:
public ActionResult ShowMenu(string id)
{
return View(id);
}