[英]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中。
**更新了從class
到myClass
變量名,因為“class”不是合適的變量名。
DisplayFor用於模板原因。 如果你沒有使用模板,那么你應該只使用這樣的項目: @Model.Name
如果你想給它一個類或id,那么你需要將它包裝在span或div中。
您的問題是您使用錯誤的方法輸出數據,並期望它做其他事情。 沒有內置的方法來輸出帶有類名的原始數據。
所以你的選擇是,將原始項包裝在可以應用css的容器中,或者創建一個用於這些的模板,然后在DisplayFor中指定模板名稱,如下所示:
@Html.DisplayFor(m => m.Name, "NameTemplate")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.