部分视图动作发送参数

时间:2014-05-23 07:25:08

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

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

如何创建数组变量? partialView.page

我试过了,但它没有用。

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

谢谢

3 个答案:

答案 0 :(得分:0)

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

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

这是如何调用和使用它:

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

答案 1 :(得分:0)

你可以在View中这样做:

@{
    var temp = new[] { "Competency", "crew", "Person" };
}

 @Html.Action("GetDefinationType", "Crew",new{category =temp })

动作:

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

答案 2 :(得分:0)

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

如果要将字符串数组作为参数传递,只需将匿名类型的字符串数组作为命名的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"} })

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

e.g。

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

此外,除非您的意思是defamationdefinition的俚语组合,否则“defanation”请拼写definition:)