MVC4 中的 FormCollection 与 Html Actionlink

Posted

技术标签:

【中文标题】MVC4 中的 FormCollection 与 Html Actionlink【英文标题】:FormCollection in MVC4 with Html Actionlink 【发布时间】:2014-05-05 22:25:56 【问题描述】:

我在 MVC4 中使用 html ActionLink。我需要使用formCollection 删除QueryStrings。如何使用?

这是我的代码:

       <div class="mainNav">
            <nav>
                  <ul>
                        @for (int i = 0; i < Query.Count - 1; i++)
                                                    
                            <li>@Html.ActionLink(Query[i].Parent_Menu,"ManageContent","Home", new  CmsFid = Query[i].CMSFunction_Id,ParentMenu=Query[i].Parent_Menu  ,new  @style = "color:#FFF;text-decoration:none" )</li>

                        
                        @for(int i=Query.Count-1;i<Query.Count;i++)
                        
                        <li>@Html.ActionLink(Query[i].Parent_Menu,"ManageContent","Home", new  CmsFid = Query[i].CMSFunction_Id,ParentMenu=Query[i].Parent_Menu  ,new @class="last", @style = "color:#FFF;text-decoration:none" )</li>
                        
                </ul>
            </nav>
        </div>

【问题讨论】:

请您考虑改写或扩展您的问题?目前我不确定你在做什么,你想要什么或者你想要实现什么。试着想象你正在回答这个问题。另请阅读Writing the perfect question。 请您说说您遇到的问题 这里我是从 DataBase 动态绑定菜单。当单击菜单项根据 ID 绑定数据时。截至目前,我正在使用查询字符串参数将 iD 传递给控制器​​。但现在我想使用 ormcollection 删除查询字符串。 如果您正在生成动态菜单,那么为什么需要Query 参数?如果有帮助,请查看this 答案。 【参考方案1】:

我认为您将无法在您的操作中获取 formCollection 元素(使用 Html.ActionLink)。此外,如果您有能力,您可能需要解析它们或为您的属性类型转换它们。所以我建议你有一个像

这样的动作方法
 public ActionResult  ManageContent(int CmsFid,string ParentMenu)
    
    

您可以将 formCollection 用于可能有很多数据的表单发布

如果它是一个表单帖子,你可以像这样使用

 public ActionResult YourPostMethod(FormCollection formData)

   int CmsFid=int.Parse(formData["CmsFid"]);

【讨论】:

以上是关于MVC4 中的 FormCollection 与 Html Actionlink的主要内容,如果未能解决你的问题,请参考以下文章

处理FormCollection字段的帮助类

如何从FormCollection返回对象列表?

使用 FormCollection

FormCollection 和 KnpPaginator Symfony 4

csharp formcollection.cs

FormCollection 缺少提交按钮值 [重复]