好吧,也许我漏掉了什么,但我想不通。使用ASP.NET MVC3,剃刀视图。
我有一个这样的模型对象:
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生成文件输入字段?
发布于 2011-01-27 10:44:06
通过创建自定义Object.cshtml编辑器模板,我设法使其正常工作:
@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()。我不知道这是不是一个好的解决方案,但现在它是有效的。
发布于 2011-01-27 10:30:25
我也遇到过类似的问题--复杂属性的编辑器没有输出。您的情况可能有所不同,但我找到的变通方法(为您的模型-Model.ascx创建一个编辑器)也应该适用于您。
https://stackoverflow.com/questions/4811773
复制相似问题