Asp.net-Mvc
如何為 DisplayFor() 創建 MVC Razor 模板
我的視圖模型中有幾個僅顯示的屬性,但我需要使用 jQuery 檢索它們的值以在頁面上執行計算。標準*Html.DisplayFor()*方法只是將它們的值寫入頁面。我想創建一個剃刀模板,它允許我將每個元素呈現為:
<span id="ElementsId">Element's value</span>我知道我可以在Html.DisplayFor()中指定一個模板以使用特定模板來呈現屬性,但是在該模板中如何辨識要寫入span標籤的id屬性?
@Html.DisplayFor(model => model.Element, "MyTemplate");
好的,我找到了它,它實際上非常簡單。在我的Views\Shared\DisplayTemplates文件夾中,我的Reading.cshtml包含以下內容:
@model System.Int32 <span id="@ViewData.ModelMetadata.PropertyName">@Model</span>這使用屬性的名稱作為id屬性和屬性的值作為內容來呈現正確的標籤:
<span id="Reading">1234</span>在視圖文件中,可以使用以下命令呼叫:
@Html.DisplayFor(model => model.Reading, "Reading")或者,如果模型屬性使用*UIHint(“Reading”)進行修飾,則可以在呼叫DisplayFor()*時忽略模板名稱,它仍將使用模板呈現:
@Html.DisplayFor(model => model.Reading)這應該同樣適用於自定義編輯器模板。