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)
使用要点
IsXxx():返回bool,先做判断,避免转换报错。AsXxx():执行类型转换;转换失败返回该类型的默认值(int返回0,bool返回false),不会抛异常。- 注意:这套是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)
Previous: Razor 注释
Next: Razor 注意事项