首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >循环查看视图中的视图模型属性

循环查看视图中的视图模型属性
EN

Stack Overflow用户
提问于 2012-03-29 06:57:40
回答 7查看 34.1K关注 0票数 24

我有一个极其简单的视图模型。

代码语言:javascript
复制
public class TellAFriendViewModel
{
    public string Email1 { get; set; }
    public string Email2 { get; set; }
    public string Email3 { get; set; }
    public string Email4 { get; set; }
    public string Email5 { get; set; }
}

然后在我的视图上输入相应的输入,但我想知道是否有更好的方法(例如循环)来编写类似于我的视图的TextBoxes:

代码语言:javascript
复制
@using (Html.BeginForm()){
    @Html.AntiForgeryToken()

    @Html.TextBoxFor(vm => vm.Email1)
    @Html.TextBoxFor(vm => vm.Email2)
    @Html.TextBoxFor(vm => vm.Email3)
    @Html.TextBoxFor(vm => vm.Email4)
    @Html.TextBoxFor(vm => vm.Email5)
}
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-03-29 07:12:26

您应该访问

ViewData.ModelMetadata.Properties。没有理由加倍反射的努力,而且它会为你找出DataAttributes元数据。

代码语言:javascript
复制
@foreach(var property in ViewData.ModelMetadata.Properties)
{
    <div class="editor-line">
        <label>@(property.DisplayName??property.PropertyName)</label>
        @Html.Editor(property.PropertyName)
    </div>
}
票数 38
EN

Stack Overflow用户

发布于 2012-03-29 07:07:53

您应该考虑使用数组。

然而,如果你想使用反射,,它会是这样的:

代码语言:javascript
复制
@foreach (var prop in Model.GetType().GetProperties())
{
    @(Html.TextBox(prop.Name, prop.GetValue(Model, null)))
}
票数 12
EN

Stack Overflow用户

发布于 2012-03-29 13:55:23

除非我遗漏了什么,否则我不知道为什么没有人建议这样做。为什么每个人都在循环和/或使用反射?

代码语言:javascript
复制
public class TellAFriendViewModel
{
    public ICollection<EmailViewModel> Emails { get; set; } // populate 5 of them in ctor or controller
}

public class EmailViewModel
{
    public string Email { get; set; }
}

视图:

代码语言:javascript
复制
@using (Html.BeginForm()){
    @Html.AntiForgeryToken()
    @Html.EditorFor(model => model.Emails)
}

EditorTemplates\EmailViewModel.cshtml

代码语言:javascript
复制
@Html.TextBoxFor(model => model.Email)

在MVC中从来不需要循环。我重复一遍。绝不可能

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9916870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档