开发者

HttpPostedFileBase editor for using with EditorForModel

Okay, maybe I'm missing something,开发者_JAVA技巧 but I can't figure this out. Using ASP.NET MVC 3, Razor views.

I have a model object like this:

public class MyModel
{
    public HttpPostedFileBase File { get; set; }
    public string Title { get;set; }
    public string Description { get; set; }
}

When, in a strongly typed view, I call @Html.EditorForModel(), it only generates the Title and Description form fields.

I created the file: Views\Shared\EditorTemplates\HttpPostedFileBase.cshtml, with dummy content, but it still doesn't get rendered.

Is it possible to get EditorForModel to generate file input fields?


I managed to get it working by creating a custom Object.cshtml editor template:

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

Basically it calls Html.Editor() for each property of the model. I don't know if it's a good solution, but it works for now.


I have investigated a similar problem - the editor for complex properties is not output. Your case may be different but the workaround that I found (creating an editor for your model - Model.ascx) should work for you too.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜