asp.net mvc:如何将匿名类型传递给UserController?

时间:2009-04-21 01:49:47

标签: asp.net-mvc

我尝试了以下但不起作用:

<%Html.RenderPartial("userControl",new {personID=Model.ID, name="SomeName"});%>

在usercontrol中,我有一个ajax表单的隐藏字段,我将其分配给personID。它不会编译,隐藏的ID无法识别。

2 个答案:

答案 0 :(得分:1)

如果你想从匿名类型中获取正确的属性,你必须使用反射或者像RouteValueDictionary这样的辅助类。

RouteValueDictionary可能是最简单的。创建它的一个实例,传递Model,然后使用它的索引运算符来查询值。

例如:

<%
    var modelDictionary = new RouteValueDictionary(Model);
%>
<input type="hidden" name="personID" value="<%= modelDictionary["personID"] %>" />

答案 1 :(得分:1)

我不确定你为什么要这样做,但这里是如何(强烈的类型模型更好):

<%
    ViewData["PersonID"] = Model.ID;
    ViewData["Name"] = "SomeName";
    Response.Write(
        Html.RenderPartial("userControl"));
%>

OR

如果你这样做:

<%=Html.RenderPartial("userControl")%>

如果您的“userControl”也是强类型的,它应该能够读取“Model.ID”