簡體   English   中英

如何在MVC 3中編輯Html.DisplayFor方法的CSS?

[英]How do I edit the CSS of the Html.DisplayFor method in MVC 3?

我使用以下代碼在我的視圖中顯示視圖模型中的文本:

@Html.DisplayFor(m => m.Name)

當我查看IE9中的HTML細節(我必須在工作中使用)時,沒有與該名稱相關聯的類,它只使用Body CSS樣式而不是display-field類樣式。 有誰知道可能導致此問題的原因或我如何編輯創建的文本的CSS?

如果它是一個標簽,請使用適當的幫助,因為Nataka526建議

否則將它放在帶有類的span中並更新該類的css:

你的HTML:

<span class="name">
    @Html.DisplayFor(m => m.Name)
</span>

你的css:

.name {
    //custom css
}

UPDATE

另一個選項:更新顯示模板以處理特定的ViewData鍵:

在Views> Shared> DisplayTemplate中(如果您還沒有,請創建此文件夾):

添加文件String.cshtml:

@model string

@{
    string myClass = ViewData["class"]
}

@if(string.IsNullOrEmpty(myClass))
{
    @:@Model
}
else
{
    <span class="@myClass">@Model</span>
}

除了字符串之外,您可能還需要為其他tipes添加DisplayTemplates。

在視圖中,您將編寫如下內容:

@Html.DisplayFor(m => m.Name, new { @class= "name" })

這將自動添加圍繞它的跨度。

UPDATE

說明:

Html.DisplayFor上有一個重載,它接受兩個參數:expression和object additionalViewData 所以我傳遞的第二個參數是匿名對象additionalViewData。 我用名為class屬性創建此對象

在html幫助器內部,然后檢查是否存在具有鍵class的ViewData,如果有,我將輸出放在具有該類值的span中。

**更新了從classmyClass變量名,因為“class”不是合適的變量名。

DisplayFor用於模板原因。 如果你沒有使用模板,那么你應該只使用這樣的項目: @Model.Name如果你想給它一個類或id,那么你需要將它包裝在span或div中。

您的問題是您使用錯誤的方法輸出數據,並期望它做其他事情。 沒有內置的方法來輸出帶有類名的原始數據。

所以你的選擇是,將原始項包裝在可以應用css的容器中,或者創建一個用於這些的模板,然后在DisplayFor中指定模板名稱,如下所示:

 @Html.DisplayFor(m => m.Name, "NameTemplate")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM