我正在为Object.cshtml创建一个编辑器模板来更改Html.EditorForModel()方法的行为。我找不到任何使用Razor的例子。我已经看到使用MVC2和WebForm视图引擎的this example,但对剃须刀没有足够的了解来转换它。即使是一个简单的例子也会非常有帮助。使用MVC和Razor创建object.cshtml编辑器模板
12
A
回答
21
我只是做显示模板,剩下的作为一个练习留给读者:)
@if (Model == null) {
<text>@ViewData.ModelMetadata.NullDisplayText</text>
} else if (ViewData.TemplateInfo.TemplateDepth > 1) {
<text>@ViewData.ModelMetadata.SimpleDisplayText</text>
} else {
<table cellpadding="0" cellspacing="0" border="0">
@foreach (var prop in ViewData.ModelMetadata.Properties.Where(pm => pm.ShowForDisplay && !ViewData.TemplateInfo.Visited(pm))) {
if (prop.HideSurroundingHtml) {
<text>@Html.Display(prop.PropertyName)</text>
} else {
<tr>
<td>
<div class="display-label" style="text-align: right;">
@prop.GetDisplayName()
</div>
</td>
<td>
<div class="display-field">
@Html.Display(prop.PropertyName)
</div>
</td>
</tr>
}
}
</table>
}
0
这似乎为编辑模板工作的引导,请让我知道的任何改进
Object.cshtml
@if (Model == null)
{
<text>@ViewData.ModelMetadata.NullDisplayText</text>
}
else if (ViewData.TemplateInfo.TemplateDepth > 1)
{
<text>@ViewData.ModelMetadata.SimpleDisplayText</text>
}
else
{
foreach (var prop in ViewData.ModelMetadata.Properties.Where(pm => pm.ShowForDisplay && !ViewData.TemplateInfo.Visited(pm)))
{
if (prop.HideSurroundingHtml)
{
<text>@Html.Editor(prop.PropertyName)</text>
}
else
{
<div class="form-group">
@Html.Label(prop.PropertyName, new { @class = "control-label col-md-2", @style = "text-align:right;" })
<div class="col-md-10">
@Html.Editor(prop.PropertyName, null, new { @class = "form-control " })
@Html.ValidationMessage(prop.PropertyName, "", new { @class = "text-danger" })
</div>
</div>
}
}
}
相关问题
- 1. mvc razor中的嵌套编辑模板
- 2. 如何为DisplayFor()创建MVC Razor模板
- 3. ASP.NET MVC编辑器模板
- 4. 如何在mvc3中创建和使用编辑器模板
- 5. 创建模板和编辑模板需要不同的MVC模板?
- 6. MVC模板编辑器和帖子
- 7. 创建一个编辑器模板
- 8. Telerik MVC使用Razor视图引擎创建模板列
- 9. 如何在asp.net mvc 3 razor中创建和编辑FileUpload?
- 10. MVC3 Razor编辑器/显示模板和泛型
- 11. 在MVC 3中创建和编辑包含大量子类的模型Razor
- 12. 我在哪里可以找到默认的Object.cshtml编辑器模板?
- 13. 果园CMS - 创建VS编辑编辑模板和形状
- 14. Django使用一个模板创建和编辑页面
- 15. 属性的ASP.NET MVC编辑器模板
- 16. ASP.NET MVC编辑器模板javascript位置
- 17. ASP.NET MVC模板编辑器不工作
- 18. MVC剃刀编辑器模板ContentEditable DIV
- 19. ASP.NET MVC 2编辑器模板
- 20. ASP.NET MVC DropDown编辑器模板
- 21. ASP.Net MVC 2编辑器模板
- 22. 支持Asp.NET MVC Razor的编辑器
- 23. ASP.NET MVC 3中的WMD编辑器Razor
- 24. ASP MVC Razor - FormValidation - @ Html.ValidationMessageFor - 编辑器
- 25. mvc razor可编辑DropDownList
- 26. MVC编辑模板小数和整数
- 27. 不使用编辑器模板的Asp MVC可重用控件
- 28. MVC 3 RAZOR编码逻辑即使在@ {}
- 29. 通用编辑器模板
- 30. 创建一个用于编辑电子邮件模板的html wysiwyg编辑器
感谢这个,但是当我将此代码粘贴到我的object.cshtml我得到“错误CS1024:预处理器可怕ctive期待“ – Craig 2010-10-27 02:51:33
Doh,你的代码是正确的。我不小心拥有了#Html.EditorForModel()而不是@ Html.EditorForModel()。至少你的代码不会被浪费,并且将来会被许多新的Razor用户首先看到。 – Craig 2010-10-27 02:53:58
我甚至无法让我的Object.cshtml执行。我把它放在Views/Shared/EditorTemplates/Object.cshtml任何想法? – 2011-06-29 20:19:57