2012-02-20 69 views
13

我使用ASP.NET MVC 3.對於我的表單,我將標籤的文本對齊到右側。此外,標籤和輸入字段之間還有一個冒號。帶冒號的Postfix標籤文本

Firstname: [   ] 
    Last: [   ] 

我可以在MVC 3中使用CSS或一些C#代碼自動插入這個冒號嗎?

我想出了迄今爲止最好的辦法是使用[Display(Name="Firstname:")]屬性,但是這也包括本結腸驗證消息的副作用:

[Required] 
[Display(Name = "Firstname:")] 
[StringLength(100, ErrorMessage = "The {0} must be at least {2} character long.", MinimumLength = 1)] 
public string Firstname { get; set; } 

另一種方法是使用LabelFor()方法重載,但是這迫使我兩次指定標籤文本(在模型CSHTML文件一次,並且一次):

<div> 
    <div class="editor-label">@Html.LabelFor(x => x.Firstname, "Firstname:")</div> 
    <div class="editor-field">@Html.TextBoxFor(x => x.Firstname)</div> 
</div> 

什麼更好的建議?

回答

27

通過CSS,您可以通過after僞類添加冒號。你可以找到關於這個僞類here的更多信息。

.editor-label > label:after { 
    content: ": " 
} 

工作例如:http://jsfiddle.net/fJQDZ/

請注意,after僞類是不具備的IE7。

+0

謝謝,但也有可能檢查內容長度是否大於零? – 2014-07-30 21:18:48

+1

單獨使用CSS是不可能的。如果長度大於零,您可以使用javascript將元素添加到元素。然後在這個答案中使用相同的CSS來定位這些元素;例如'.editor-label> .has-content:在{...}' – 2014-08-01 11:30:08

+0

之後謝謝,這會起作用! – 2014-08-01 15:56:48