我已经尝试过研究'可能已经有你答案的问题',但由于大多数问题涉及不同的编程语言,所以他们都没有真正帮助过。
所以关于C#,特别是ASP.NET MVC,在我的 Create 动作中我有代码来大写字符串中第一个单词的第一个字符,但如果用户输入2个单词,第二个单词的第一个字符保持小写。
以下是我目前在控制器
中的内容[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "ID,text,subcategory")] Activities codeAC)
{
if (ModelState.IsValid)
{
char firstLetter = codeAC.text[0];
if (char.IsLower(firstLetter))
{
codeAC.text = codeAC.text.First().ToString().ToUpper() + String.Join("", codeAC.text.Skip(1));
}
如何修改此项,以便用户输入'test test2'时,保存到数据库中的结果将是'Test Test2',而不是'测试2'?
感谢任何帮助。
答案 0 :(得分:8)
这将对您有所帮助:
string inString = "test test2 test test2 test test2";
TextInfo cultInfo = new CultureInfo("en-US", false).TextInfo;
string output = cultInfo.ToTitleCase(inString);
// Test Test2 Test Test2 Test Test2
其中CultureInfo
属于System.Globalization
。
注意cultInfo.ToTitleCase("some value");
仅适用于包含所有小写字母的句子,请考虑一个示例:input
:"this will be an EXAMPLE"
然后上面的代码会将其转换为"This Will Be An EXAMPLE"
。这意味着EXAMPLE
仍然是资本。所以我们需要做的是,在执行此操作之前将整个字符串变为小写。所以输入将如下所示:
string inString = "test test2 test test2 test test2";