Html.ActionLink 在 foreach 循环中不起作用

Posted

技术标签:

【中文标题】Html.ActionLink 在 foreach 循环中不起作用【英文标题】:Html.ActionLink is not working in foreach loop 【发布时间】:2017-02-27 09:38:24 【问题描述】:

我从另一个页面收到一些数据。我尝试遍历数据并创建一个链接。我得到数据并将其放入@html.ActionLink(GroupID, "GroupActivity", "Home")GroupID 现在有价值。

但在屏幕上它只显示数据但不使其成为链接。

<li>@Html.ActionLink("Timetable", "Timetable", "Home")</li>
<li>
    <select class="form-control">
        <option selected>Select Group</option>
        @ var GroupID = ""; 
        @foreach (var item in Model)
        
            <option>
                @ 
                    GroupID = item.GroupID.ToString();
                    ViewBag.SelectedGroup = GroupID;
                
                @Html.ActionLink(GroupID, "GroupActivity", "Home") 
            </option>
        
    </select>
</li>

enter image description here

【问题讨论】:

你想在这里做什么——在&lt;option&gt; 中包含&lt;a&gt; 元素毫无意义——而且它是无效的(你到底为什么要这样做ViewBag.SelectedGroup = GroupID?) 我的列表中有很多组。现在我想使用@Html.ActionLink 为每个 GroupID 创建链接。但它不会在 ActionLink 中建立链接 您没有阅读我的评论吗?&lt;option&gt; 元素中的&lt;a&gt; 标签无效(以及您为什么要创建&lt;select&gt; 无论如何-您的代码没有意义) 意思是@标签? 比我如何动态生成多个链接的DropDownList。 【参考方案1】:

你必须在那里写这样的东西:

使用操作链接

@Html.ActionLink("Some text for link", "GroupActivity", "Home",new GroupID=GroupID )

但在您的情况下,这不起作用,因为您在无效的选项内创建操作链接。

使用客户端事件(onchange)

$(function()
$("#YourDropDownID").change(function()
     var selectedItem = $("#YourDropDownID option:selected").text();
     var redirectURL = '@Url.Action("ActionName","ControllerName")';
     window.location.href = redirectURL + "?item=" + selectedItem;
 

【讨论】:

以上是关于Html.ActionLink 在 foreach 循环中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

如何在 @Html.ActionLink 中添加图像

是否可以在 Html.ActionLink 上同时添加 CSS 类和返回确认?

如何改进在样式 div 内使用 Html.ActionLink 的按钮

如何在 C# 代码中使用 MVC 3 @Html.ActionLink

MVC html.actionlink

使用 Html.ActionLink 在不同的控制器上调用动作