bar*_*one 11 .net css c# asp.net-mvc-3
我使用以下代码在我的视图中显示视图模型中的文本:
@Html.DisplayFor(m => m.Name)
Run Code Online (Sandbox Code Playgroud)
当我查看IE9中的HTML细节(我必须在工作中使用)时,没有与该名称相关联的类,它只使用Body CSS样式而不是display-field类样式.有谁知道可能导致此问题的原因或我如何编辑创建的文本的CSS?
Dmi*_*try 16
如果它是一个标签,请使用适当的帮助,因为Nataka526建议
否则将它放在带有类的span中并更新该类的css:
你的HTML:
<span class="name">
@Html.DisplayFor(m => m.Name)
</span>
Run Code Online (Sandbox Code Playgroud)
你的css:
.name {
//custom css
}
Run Code Online (Sandbox Code Playgroud)
UPDATE
另一个选项:更新显示模板以处理特定的ViewData键:
在Views> Shared> DisplayTemplate中(如果您还没有,请创建此文件夹):
添加文件String.cshtml:
@model string
@{
string myClass = ViewData["class"]
}
@if(string.IsNullOrEmpty(myClass))
{
@:@Model
}
else
{
<span class="@myClass">@Model</span>
}
Run Code Online (Sandbox Code Playgroud)
除了字符串之外,您可能还需要为其他tipes添加DisplayTemplates.
在视图中,您将编写如下内容:
@Html.DisplayFor(m => m.Name, new { @class= "name" })
Run Code Online (Sandbox Code Playgroud)
这将自动添加围绕它的跨度.
UPDATE
说明:
有一个重载Html.DisplayFor接受两个参数:表达式和object additionalViewData.所以我传递的第二个参数是匿名对象additionalViewData.我用名为的属性创建此对象class
在html帮助器内部,然后检查是否有带键的ViewData,class如果有,我将输出放在具有该类值的span中.
**更新变量名称class,myClass因为"class"不是合适的变量名.
Eri*_*sch 12
DisplayFor用于模板原因.如果你没有使用模板,那么你应该只使用这样的项目:@Model.Name 如果你想给它一个类或id,那么你需要将它包装在span或div中.
您的问题是您使用错误的方法输出数据,并期望它做其他事情.没有内置的方法来输出带有类名的原始数据.
所以你的选择是,将原始项包装在可以应用css的容器中,或者创建一个用于这些的模板,然后在DisplayFor中指定模板名称,如下所示:
@Html.DisplayFor(m => m.Name, "NameTemplate")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32533 次 |
| 最近记录: |