首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于EditorForModel的HttpPostedFileBase编辑器

用于EditorForModel的HttpPostedFileBase编辑器
EN

Stack Overflow用户
提问于 2011-01-27 08:28:03
回答 2查看 1.4K关注 0票数 1

好吧,也许我漏掉了什么,但我想不通。使用ASP.NET MVC3,剃刀视图。

我有一个这样的模型对象:

代码语言:javascript
复制
public class MyModel
{
    public HttpPostedFileBase File { get; set; }
    public string Title { get;set; }
    public string Description { get; set; }
}

在强类型视图中,当我调用@Html.EditorForModel()时,它只生成标题和描述表单字段。

我创建了一个带有虚拟内容的文件: Views\Shared\EditorTemplates\HttpPostedFileBase.cshtml,,但是它仍然没有被渲染。

有没有可能让EditorForModel生成文件输入字段?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-27 10:44:06

通过创建自定义Object.cshtml编辑器模板,我设法使其正常工作:

代码语言:javascript
复制
@foreach (var prop in ViewData.ModelMetadata.Properties.Where(pm => pm.ShowForEdit && !ViewData.TemplateInfo.Visited(pm))) 
{
    if (prop.HideSurroundingHtml) 
    {
        @Html.Editor(prop.PropertyName)
    } 
    else 
    {
        <div class="editor-container">
            <div class="editor-label">
                @Html.Label(prop.PropertyName, prop.DisplayName)
            </div>
            <div class="editor-field">
                @Html.Editor(prop.PropertyName, prop.TemplateHint)
                @Html.ValidationMessage(prop.PropertyName, "*")
            </div>
        </div>
    }
}

基本上,它为模型的每个属性调用Html.Editor()。我不知道这是不是一个好的解决方案,但现在它是有效的。

票数 2
EN

Stack Overflow用户

发布于 2011-01-27 10:30:25

我也遇到过类似的问题--复杂属性的编辑器没有输出。您的情况可能有所不同,但我找到的变通方法(为您的模型-Model.ascx创建一个编辑器)也应该适用于您。

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

https://stackoverflow.com/questions/4811773

复制
相关文章

相似问题

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