类型转换

Razor视图封装了一套AsXxx()转换、IsXxx()判断扩展方法,专门用于字符串和常用类型之间做判断与转换,这是老版ASP.NET Web Pages的API,ASP.NET Core Razor不再自带这套方法

常用API对照表

转换方法作用判断方法作用
AsInt()转为int整数IsInt()判断是否可以转为整数
AsBool()转为bool布尔IsBool()判断是否可以转为布尔
AsFloat()转为float单精度浮点IsFloat()判断是否浮点
AsDecimal()转为decimal十进制IsDecimal()判断是否decimal数字
AsDateTime()转为DateTime时间IsDateTime()判断是否时间格式
ToString()转为字符串

示例

@{
    string num = "100";

    // 判断字符串是否可以转整数
    if (@num.IsInt())
    {
        <font>@num 是整数</font>
    }

    // 字符串转int
    int numVal = num.AsInt();
}
输出转换后的值:@numValCode language: PHP (php)
@{
    string number = "100";
    if (@number.IsDecimal())
    {
        <font>@number 是数字</font>
    }
    int num = number.AsInt();
}
@numCode language: HTML, XML (xml)

使用要点

  1. IsXxx():返回bool,先做判断,避免转换报错。
  2. AsXxx():执行类型转换;转换失败返回该类型的默认值(int返回0,bool返回false),不会抛异常
  3. 注意:这套是Web Pages 老Razor专属,ASP.NET Core MVC/Razor Pages没有这些扩展方法,Core里面直接用C#原生int.Parse()int.TryParse()

Core版本写法

@{
    string num = "100";
    int numVal;
    if(int.TryParse(num, out numVal))
    {
        //转换成功
    }
}Code language: JavaScript (javascript)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注