Html.ActionLink()对象参数

时间:2013-11-19 12:17:21

标签: c# asp.net-mvc

此方法的第三个参数(@Html.ActionLink(genre.Name,"Browse",new { genre = genre.Name }))如何接受new { genre = genre.Name }。它的类型为System.Object。如何创建我想要的属性名称并将其分配给同一属性?

事实上如果我输入object o = new object() { gnere = "2" };。它无效。 如何在@Html.ActionLink(genre.Name,"Browse",new { genre = genre.Name })中有效?

3 个答案:

答案 0 :(得分:0)

你在这里输入错误的语法......

尝试:

object o = new { genre = "2" };

这取决于作为动态对象的对象(可以在运行时创建其属性)。您可以使用动态对象执行相同操作:

dynamic o = new { genre = "2" };

答案 1 :(得分:0)

查看MSDN文档。

第三个参数描述为

  

routeValues
  键入:System.Object
  包含路径参数的对象。通过检查对象的属性,通过反射检索参数。该对象通常使用对象初始化器语法创建。

routeValues用于提供路线的详细信息。例如,在您的情况下,您的控制器中可能有一个需要一个名为genre的变量的操作方法。底层框架会将您的路由值genre转换为此。

答案 2 :(得分:0)

实际上新的{genre = genre.Name}不是System.Object对象。但是如果我们回到你的问题,你可以在这种情况下使用var类型:

var o = new { genre = "2" };
@Html.ActionLink(genre.Name,"Browse", o)