css - MVC : which CSS class implements Html. EditorFor() 方法?

标签 css asp.net-mvc html-helper

为了修改使用 @Html.EditorFor(m => m.SomeAttribute) 时显示的样式,我想知道如何覆盖默认 CSS 类而不为每个类声明一个新类模型的属性数据类型。换句话说。

我不想这样做:

  @Html.LabelFor(m => m.ddlStationId, new {@class="label"})
  @Html.EditorFor(m => m.ddlStationId, new { ReadMethod = "Read", ReadController = "Receiver",@class="combobox" })
  @Html.EditorFor(m => m.txbBrandName,new {@class="textbox"})

众所周知,EditorFor() 具有不同的行为,具体取决于数据类型,所以我想知道这个类位于何处。

我通过使用 UIHint 类作为装饰器并定义了一个 EditorTemplate 做了一些事情,但不允许我覆盖主要的 CSS。重要的是要说明我正在使用 Kendo UI 框架。一些可能相关的额外信息。

最佳答案

除非您覆盖默认模板,否则不存在“默认”类。根据您的 DataAnnotations,显示的值的行为可能不同(格式化字符串,也许您有一个模板将日期选择器放在文本输入上),但以下每个输出在 MVC 中是一致的。

@Html.LabelFor(x=>x.Property)

HTML 输出

<label for="Property">Property Value</label>

对于字符串属性

@Html.EditorFor(x=>x.SomeStringProperty)

HTML 输出

<input type="text" id="SomeStringProperty" name="SomeStringProperty" value=""/>

最后,一个 bool 属性

@Html.EditorFor(x=>x.SomeBoolProperty)

HTML 输出

<input type="checkbox" id="SomeBoolProperty" name="SomeBoolProperty"/>

鉴于此,在您的样式表中,您需要为顶级 HTML 元素创建类,而不是基于类或 ID。这样的例子可以是

<style>
  <!--apply to all labels -->
  label { position: absolute; text-align:right; width:130px; }
  <!--apply to all labels with class check-->
  label.check { font-weight:bold;padding-left:10px }
  <!-- apply to all input and textarea tags-->
  input, textarea { margin-left: 140px; }
  <!-- apply to all input with class special-->
  input.special { font-weight: bold }
</style>

如果您查看基本 MVC 模板附带的默认样式表,您可能会看到与我在上面发布的内容类似的内容。您可以使用自定义类编辑这些。

关于css - MVC : which CSS class implements Html. EditorFor() 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21283568/

相关文章:

c# - 直接更改TextAreafor上的日期显示格式

c# - 字段的 ASP.NET MVC 内联帮助程序

html - 如何在 <td> 中居中对齐按钮?

php - 带有文件下载的提交按钮

asp.net-mvc - Asp.Net MVC FormsAuthenticationTicket

jquery - 从jQuery调用 knockout View 模型函数

html - 是否可以更改超大屏幕的高度?

css:hover:after 在另一个元素上

c# - MVC - 从 View 调用 Controller

c# - 将我的 List<Roomtype> 转换为 SelectList for ASP。 NET MVC DropDownFor<>,并为每个选项项获取正确的值