我使用下面的代码在我看来,我的视图模型显示的文字:
@Html.DisplayFor(m => m.Name)
当我看到IE9中的HTML的细节(这是我在工作中使用),也没有与该名称关联的类,它只是使用身体CSS样式,而不是显示字段级的造型。 有谁知道什么可能会造成这个问题或如何我可以编辑文本的CSS创建?
我使用下面的代码在我看来,我的视图模型显示的文字:
@Html.DisplayFor(m => m.Name)
当我看到IE9中的HTML的细节(这是我在工作中使用),也没有与该名称关联的类,它只是使用身体CSS样式,而不是显示字段级的造型。 有谁知道什么可能会造成这个问题或如何我可以编辑文本的CSS创建?
DisplayFor用于模板的原因。 如果不使用模板,那么你应该只使用像这样的项目: @Model.Name
如果你想给它一个类或ID,那么你需要将它包装在一个跨度或股利。
你的问题是,你正在使用错误的方法来输出数据,并期待它做些别的事情。 没有内置的方式与类名的原始数据输出。
所以,你的选择是,在包装容器的原始项目,你可以应用CSS来,或创建一个模板使用了这些,然后在DisplayFor像这样指定模板名称:
@Html.DisplayFor(m => m.Name, "NameTemplate")
如果它是一个标签,使用适当的帮手作为Nataka526提示
否则把它在一类和更新的CSS该类跨度:
您的HTML:
<span class="name">
@Html.DisplayFor(m => m.Name)
</span>
你的CSS:
.name {
//custom css
}
UPDATE
另一种选择:更新显示模板来处理特定的ViewData的关键:
在视图>共享> DisplayTemplate(创建这个文件夹,如果你没有它的话):
添加文件String.cshtml:
@model string
@{
string myClass = ViewData["class"]
}
@if(string.IsNullOrEmpty(myClass))
{
@:@Model
}
else
{
<span class="@myClass">@Model</span>
}
您可能需要添加DisplayTemplates其他tipes以及除了字符串。
在视图中,你会写是这样的:
@Html.DisplayFor(m => m.Name, new { @class= "name" })
这将自动添加周围跨度。
UPDATE
说明:
有上的过载Html.DisplayFor
接受两个参数:表达和object additionalViewData
。 所以,我通过了第二个参数是匿名对象additionalViewData。 我创建属性调用该对象class
中HTML帮助的我,然后检查是否有一个键的ViewData class
,如果有,我把输出范围内与该类价值。
**更新从变量名class
以myClass
,因为“类”是不恰当的变量名。