我正在爲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. 如何在mvc3中創建和使用編輯器模板
- 4. 創建模板和編輯模板需要不同的MVC模板?
- 5. 如何在asp.net mvc 3 razor中創建和編輯FileUpload?
- 6. 在MVC 3中創建和編輯包含大量子類的模型Razor
- 7. Django使用一個模板創建和編輯頁面
- 8. 我在哪裏可以找到默認的Object.cshtml編輯器模板?
- 9. 支持Asp.NET MVC Razor的編輯器
- 10. ASP.NET MVC編輯器模板javascript位置
- 11. ASP.Net MVC 2編輯器模板
- 12. ASP.NET MVC 2編輯器模板
- 13. ASP.NET MVC DropDown編輯器模板
- 14. 不使用編輯器模板的Asp MVC可重用控件
- 15. 創建一個用於編輯電子郵件模板的html wysiwyg編輯器
- 16. 如何創建一個通用的MVC3編輯器模板?
- 17. DataType編輯器模板不適用於創建的DOM元素
- 18. 在asp.net mvc 2編輯器模板中使用jquery
- 19. asp.net的MVC:使用模板編輯器更新對象,
- 20. 在MVC編輯器模板中使用Dropzone.js
- 21. ASP.NET MVC用戶控件創建和編輯模式設置
- 22. ASP.NET MVC 3 - 部分vs顯示模板與編輯器模板
- 23. 如何在ASP.NET MVC 3中創建自定義編輯器/顯示模板?
- 24. 在MVC 2編輯器模板中正確註冊JavaScript和CSS
- 25. Asp.Net mvc 2,DropDownListFor和編輯器模板。選定的值不d123
- 26. 在asp.net mvc 3上使用iframe來創建編輯器
- 27. 創建動態div Razor MVC
- 28. 使用Razor Engine和EF CodeFirst創建MVC應用程序
- 29. 如何爲枚舉創建默認編輯器模板?
- 30. MVC 3共享模板編輯器:爲創建但不編輯設置默認值
感謝這個,但是當我將此代碼粘貼到我的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