如何编辑Html.DisplayFor方法的CSS在MVC 3?(How do I edit the

2019-07-30 15:08发布

我使用下面的代码在我看来,我的视图模型显示的文字:

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

当我看到IE9中的HTML的细节(这是我在工作中使用),也没有与该名称关联的类,它只是使用身体CSS样式,而不是显示字段级的造型。 有谁知道什么可能会造成这个问题或如何我可以编辑文本的CSS创建?

Answer 1:

DisplayFor用于模板的原因。 如果不使用模板,那么你应该只使用像这样的项目: @Model.Name如果你想给它一个类或ID,那么你需要将它包装在一个跨度或股利。

你的问题是,你正在使用错误的方法来输出数据,并期待它做些别的事情。 没有内置的方式与类名的原始数据输出。

所以,你的选择是,在包装容器的原始项目,你可以应用CSS来,或创建一个模板使用了这些,然后在DisplayFor像这样指定模板名称:

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


Answer 2:

如果它是一个标签,使用适当的帮手作为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 ,如果有,我把输出范围内与该类价值。

**更新从变量名classmyClass ,因为“类”是不恰当的变量名。



文章来源: How do I edit the CSS of the Html.DisplayFor method in MVC 3?