动态创建具有不同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的网页

默认路由的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);
        }