如何在运行时在mvc 4中绑定带变量的模型

时间:2014-02-11 12:36:30

标签: asp.net-mvc-4

我有一个包含超过50个字段的模型,我想显示这些字段的列表但不是全部

所以我创建了两个包含显示字段列表和所有值的视图包。

现在我有,

<table>
<tr>
   @foreach (var v in @ViewBag.columnList)
   {
       <th>@v</th>
   }
</tr>

        @foreach (var u in  @ViewBag.userlist)
        {
            <tr>
                @foreach (var c in @ViewBag.columnList)
                {

                    <td>@u.c</td>
                }
            </tr>
    }

我想指定@u.@c来选择要在表格中显示的列。

1 个答案:

答案 0 :(得分:0)

public abstract class UserBaseModel
{
   public string Name {get;set;}
   public string City {get;set;}
}

public class UserModel : UserBaseModel
{
   public string State {get;set;}
}

public class AdminModel : UserBaseModel
{
   public string Gender {get;set;}
}

这些类显示具有不同属性的不同用户类型。然后,您可以使用基类强制键入视图

@model UserBaseModel

这样,您可以根据用户将不同的模型传递给视图。然后,您可以选择如何访问这些属性。 可能允许您选择属性,即使没有知识产权,我还没有尝试过。

您还可以拥有用户类型的部分视图,然后根据问题中的用户类型加载相关的部分视图。重点是,您可以将User to Admin传递给示例中的视图,两者都可以。