无法找到这个......也许我看起来并不正确。但这几乎是我的观点:
<div class="jumbotron">
@foreach (DataRow dr in ds.Tables[0].Rows)
{
<ul>
<li>@dr["Name"].ToString() - @dr["Distance"].ToString()</li>
</ul>
}
</div>
我想为具有不同URL的每个项目符号创建一个新页面(使用c#和MVC),具体取决于名称。我怎样才能做到这一点?我使用ActionLink吗?它与路由有关吗?
基本上让我们说你有一个餐馆列表,我想要它,这样当你点击餐馆时它会带你到另一个网址,如yourdomain.com/restaurant-name
,然后我想填充那个页面用一些HTML。我该怎么做呢?
答案 0 :(得分:1)
默认路由采用以下格式的网址:domain.com/controller/action/id
因此,如果您使用操作RestaurantsController
对名为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
然后在你的剃须刀视图中为它做链接,你可以这样做:
@Html.ActionLink("Link text here", "View", "Restaurants",
htmlAttributes:=Nothing, routeValues:= New With {.id = dr["Name"]})
答案 1 :(得分:0)
查看:
<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);
}