【问题标题】:Partial view action send parameter部分视图动作发送参数
【发布时间】:2014-05-23 07:25:08
【问题描述】:

如何将数组参数发送到操作方法?

如何创建数组变量? 部分视图.page

我试过了,但是没用。

@{ Html.RenderAction("GetDefinationType", "Crew", new { category = "Competency","crew",Person" }); }  

谢谢

【问题讨论】:

    标签: asp.net-mvc razor model-view-controller


    【解决方案1】:

    您可以在 View 中这样做:

    @{
        var temp = new[] { "Competency", "crew", "Person" };
    }
    
     @Html.Action("GetDefinationType", "Crew",new{category =temp })
    

    行动:

     public ActionResult GetDefinationType(string[] category)
     {
       return Content("");
     }
    

    【讨论】:

      【解决方案2】:

      GetDefinationType 方法中,您必须让它接受名称为CategoryOptions 的参数,这将是您要传递的类(参数)。

      public class CategoryOptions 
      {
            string[] myArray { get; set; }
      }
      

      这是如何调用和使用它:

      @{ Html.RenderAction("GetDefinationType", "Crew", new { category = new CategoryOptions { myArray = new string [] {"Competency","crew","Person"}} }); }
      

      【讨论】:

      • 嗨,我不能这样做,但效果不佳“使用集合初始化程序初始化'string'类型的对象”
      • Ops,我忘了在数组前面添加新字符串 [],我会编辑它
      • 如果您已修复,请将其标记为答案,以便其他用户知道该问题已得到解答。
      • 额外的对象 CategoryOptions 是不必要的。只需传递一个名为 category 的匿名类型字符串数组。
      【解决方案3】:

      其他两个答案几乎是正确的,但过于复杂。

      如果你想传递一个字符串数组作为参数,只需传递一个匿名类型的字符串数组作为你命名的category参数:

      @{Html.RenderAction("GetDefinationType", "Crew", new { category = new [] {"Competency","crew","Person"} });}
      

      使用 Html.Action,而不是 HTML.RenderAction

      注意:RenderAction 用于代码块(正如您添加的那样),但您可以将更简单的@Html.Action 用于内联 Razor 代码

      @Html.Action("GetDefinationType", "Crew", new { category = new [] {"Competency","crew","Person"} })
      

      在任何一种情况下,控制器操作方法只需要接受一个名为 category 的参数,其类型为 string[]

      例如

      public ActionRresult GetDefinationType(string[] category)
      {
         // do something with the list of categories
      }
      

      另外,除非你指的是defamationdefinition 的俚语组合,“defanation”请拼写为definition :)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-16
        • 1970-01-01
        • 2012-10-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多