How to Bind Model with variable at Runtime in 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来选择要在表中显示的列。

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;}
}

这些类显示了具有不同属性的不同用户类型。然后,您可以使用基类来创建一个stongly类型的视图

@model UserBaseModel

通过这种方式,您可以根据用户将不同的模型传递到视图。然后,您可以选择如何访问这些属性。它可能允许您选择属性,即使不会有智能化,我还没有尝试过。

您还可以拥有用户类型的局部视图,然后根据问题中用户的类型加载相关的局部视图。重点是,您可以将"用户到管理员"中的任意一个传递到示例中的视图,两者都可以工作。

相关内容

最新更新