Asp.net mvc 4 在MVC4中如何在运行时将模型与变量绑定

Asp.net mvc 4 在MVC4中如何在运行时将模型与变量绑定,asp.net-mvc-4,Asp.net Mvc 4,我有一个模型有50多个字段,我想显示这些字段的列表,但不是所有字段的列表 因此,我创建了两个viewbag,其中包含显示字段和所有值的列表 现在我有 <table> <tr> @foreach (var v in @ViewBag.columnList) { <th>@v</th> } </tr> @foreach (var u in @ViewBag.userlist)

我有一个模型有50多个字段,我想显示这些字段的列表,但不是所有字段的列表

因此,我创建了两个viewbag,其中包含显示字段和所有值的列表

现在我有

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

@foreach(var v在@ViewBag.columnList中)
{
@五
}
@foreach(var u in@ViewBag.userlist)
{
@foreach(var c in@ViewBag.columnList)
{
@u、 c
}
}

我想指定
@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;}
}
这些类显示具有不同属性的不同用户类型。然后,您可以使用基类键入一个视图

@model UserBaseModel
这样,您可以根据用户将不同的模型传递到视图。然后,您可以选择如何访问这些属性。它可能允许您选择出的财产,即使不会有IntelliSense,我还没有尝试


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

使用仅包含所需数据的ViewModel。然后,您可以使用
@Html
帮助程序进行显示。听起来你正在公开一个域模型,可能会让自己面临大规模分配攻击。我只想显示列列表中的那些字段。如何显示?我认为你不能这样做,你能提供更多关于你试图实现什么的信息吗,因为它看起来无论如何都是一个糟糕的设计。显示模型并解释需求ViewBag.columnList是所选的动态列列表。它可能具有ViewBag.columnList和ViewBag.userlist中的所有列名或所选列名,这些列名和ViewBag.userlist都具有关于用户的完整信息,该用户有很多列(大于40)。我只想从ViewBag.columnList中选择那些列并显示。如果我通过了userList的模型,那么我应该写
@foreach(模型中的varv){@v.Name@v.address}
。但这些值在ViewBag.columnList中。所以我想在@v.viewbag.columnlist,RUNTIME中分配这些值。有可能吗?没有。为了有一天需要支持你的应用程序的人,很高兴,没有。我只需要显示所选列的列表。列列表是可变的。