如何大写第一个字母剃须刀

Zak*_*aki 7 asp.net-mvc capitalization razor asp.net-mvc-3

我是MVC的新手,并没有在网上找到解决方案.

我把html作为:

@Html.DisplayFor(model => model.Address1) <br />
Run Code Online (Sandbox Code Playgroud)

我希望地址1的第一个字母都是大写字母,例如Something Road而不是道路.

现在我有一个类客户端和属性Address1并使用EF获取地址如下:

 public class MyDBContext : DbContext
    {
        public DbSet<Client> Clients { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

希望它有意义.

kif*_*lay 19

简单的解决方案可能

Html.EditorFor(model => model.FirstName, new { htmlAttributes = new { class = "form-control" } })
Run Code Online (Sandbox Code Playgroud)

然后使用下面的css将你的第一个字母大写,然后你就完成了.

.form-control {
text-transform:capitalize;
}
Run Code Online (Sandbox Code Playgroud)

  • 我不知道为什么这么远.为什么每个人都试图处理视图模型的**风格? (2认同)

Gro*_*mer 6

您可以Client使用Address1在标题大小写中返回的属性添加部分类:

public partial class Client
{
    public string TitleCaseAddress1
    {
        get
        {
            return System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(this.Address1);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后你会TitleCaseAddress1在你的剃须刀中使用:

@Html.DisplayFor(model => model.TitleCaseAddress1) <br />

参考:http://msdn.microsoft.com/en-us/library/system.globalization.textinfo.totitlecase(v=vs.100).aspx


McG*_*gle 5

最好将表示层和数据访问层分开.创建包装或转换ORM /实体框架对象的视图模型.

public class ClientViewModel
{
    private Client _dao;

    public ClientViewModel(Client dao)
    {
        _dao = dao;
    }

    public string Address 
    { 
        get
        {
            // modify the address as needed here
            return _dao.Address;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


小智 5

对于希望在 Razor 中严格执行此操作的任何人,此示例正在转换登录用户名。替换为您的字符串变量。

这获取第一个字母并转换为大写:

@(@User.Identity.GetUserName().ToString().Substring(0, 1).ToUpper())
Run Code Online (Sandbox Code Playgroud)

这得到了剩余的字符串。

@(@User.Identity.GetUserName().ToString().Substring(1, 
    User.Identity.GetUserName().ToString().Length - 1))
Run Code Online (Sandbox Code Playgroud)

只需将它们像这样放在一起即可获得整个字符串。

@(@User.Identity.GetUserName().ToString().Substring(0, 
    1).ToUpper())@(@User.Identity.GetUserName().ToString().Substring(1, 
    User.Identity.GetUserName().ToString().Length - 1))
Run Code Online (Sandbox Code Playgroud)