代码之家  ›  专栏  ›  技术社区  ›  zsharp

如何将匿名类型传递给用户控制器?

  •  0
  • zsharp  · 技术社区  · 15 年前

    我尝试了以下方法,但没有成功:

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

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

    2 回复  |  直到 15 年前
        1
  •  1
  •   Jon Benedicto    15 年前

    如果要从匿名类型获取正确的属性,则必须使用反射或诸如RouteValueDictionary之类的帮助类。

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

    <%
        var modelDictionary = new RouteValueDictionary(Model);
    %>
    <input type="hidden" name="personID" value="<%= modelDictionary["personID"] %>" />
    
        2
  •  1
  •   Johannes Setiabudi    15 年前

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

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

    或者

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

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