2013-07-01 34 views
6

我想讓它如此,當用戶輸入一個值並提交它時,它將與大寫的第一個字母和其餘小寫字母一起存儲。我想這樣做的model.Name在:大寫編輯器的第一個字母對於條目

@Html.EditorFor(model => model.Name) 

,我發現這個整潔的函數,我想要做什麼,但我不能爲我的生活弄清楚如何將二者結合起來:

s = System.Threading.Thread.CurrentThread.CurrentCulture.TextInfo.ToTitleCase(s.toLower()); 

我真的很感謝任何幫助,我一直在這個永遠的工作,沒有什麼可以顯示它。

+0

僅CSS解決方案 - 可能不適合你,如果你只需要代碼 - http://stackoverflow.com/questions/5577364/make-the-first-character-uppercase-in-css。 (如果搜索[css大寫首字母](http://www.bing.com/search?q=css+uppercase+first+letter),還有更多信息) –

+0

我還沒有探索mvc。但是,我認爲這可以通過模型字段上的自定義屬性來完成。 – mshsayem

回答

2

考慮到你的字符串是在一個名爲「strSource」,那麼你可以做這樣的事情變量:

char.ToUpper(strSource[0]).ToString() + strSource.Substring(1).ToLower(); 

或者,更好的解決方案是創建一個extension method

public static string ToUpperFirstLetter(this string strSource) 
{ 
    if (string.IsNullOrEmpty(strSource)) return strSource; 
    return char.ToUpper(strSource[0]).ToString() + strSource.Substring(1).ToLower(); 
} 
0

一個選項是製作一個自定義EditorTemplate(Views - > Shared - > EditorTemplates)

TitleString.ascx

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<System.String>" %> 
<%=Html.TextBox("", System.Threading.Thread.CurrentThread.CurrentCulture.TextInfo.ToTitleCase(Model.ToLower()))%> 

然後在你想要的格式,你可以這樣做你的觀點:

@Html.EditorFor(model => model.Name, "TitleString") 

欲瞭解更多詳情請查看:http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-1-introduction.html

0

你可以爲每個字的第一個字母根據文化信息通過簡單地在控制器上使用此:

注意:「測試」是一個示例屬性從視圖返回(as Name,Sur名稱,地址等)

text = string.IsNullOrEmpty(text) ? string.Empty : CultureInfo.CurrentCulture.TextInfo.ToTitleCase(text.ToLower(new CultureInfo("tr-TR", false))); 

請注意,在這裏有一個額外的空值控制。希望這可以幫助...

相關問題