无法为文件上传生成脚手架

时间:2012-10-02 08:20:32

标签: c# .net asp.net-mvc-3 scaffolding

我尝试为文件上传生成视图,但上传部分丢失了,其余的成员会为他们生成视图

查看模型

namespace myapps.Models.ViewModels
{
    public class UserPhotoUploadViewModel
    {

        public HttpPostedFile PhotoFile
        {
            get;
            set;
        }

        public Guid UserID
        {
            get;
            set;
        }
    }
}

生成视图

@model myapps.Models.ViewModels.UserPhotoUploadViewModel

@using (Html.BeginForm()) {
    @Html.ValidationSummary(true)
    <fieldset>
        <legend>UserPhotoUploadModel</legend>

        <div class="editor-label">
            @Html.LabelFor(model => model.UserID)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.UserID)
            @Html.ValidationMessageFor(model => model.UserID)
        </div>

        <p>
            <input type="submit" value="Save" />
        </p>
    </fieldset>
}

我预计会填补其余部分吗?这是一种常见的行为吗?asp.net MVC3可以产生什么限制?

1 个答案:

答案 0 :(得分:1)

是的,这是标准行为。您可以检查默认的T4模板并查看其工作原理,它应位于C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\CSharp\Web\MVC 3\CodeTemplates\AddView\CSHTML\Create.tt

最重要的方法是GetEligibleProperties - 你可以看到它只有原始类型(公共等等)。

以下是在ASP.NET MVC项目中处理HttpPostedFile的示例Can EditorFor() be used to create <input type="file">?