此方法的第三个参数(@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 })
中有效?
答案 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)