#asp.net-mvc #asp.net-mvc-3 #razor
#asp.net-mvc #asp.net-mvc-3 #razor
Вопрос:
У меня есть
@{
var to = Model.PageMeta.TestID == "00" ? "All Tests" : Model.PageMeta.TestID;
}
Значение TestID может быть «00»,»01″,»02″ и т. д
Что я хотел бы сделать, так это отобразить это как «Все тесты», «1», «2» и т.д. Другими словами, я хочу просто показать значение без начального нуля.
Я пытался
parseInt(Model.PageMeta.TestID)
но это выдало мне ошибку компилятора.
Ответ №1:
Попробуйте Int32.Parse()
метод.
Комментарии:
1. Сообщение об ошибке компилятора: CS0173: Тип условного выражения не может быть определен, поскольку нет неявного преобразования между ‘string’ и ‘int’
2. Какое значение передается в качестве параметра методу Int32.Parse(). Например, Int32.Parse(«1») возвращает 1. Вместо Int32.Parse вы можете использовать Int32. Попробуйте проанализировать и посмотреть, можно ли преобразовать строку imput в целое число или нет.
Ответ №2:
Самый простой способ сделать это — использовать TrimStart
Комментарии:
1. Это бесполезно, так как это приведет к преобразованию «00» в строку. Пусто, используйте myint = Convert. ToInt32 (переменная). Редактировать: Nvm, это сработало бы для этого, но для других случаев, когда вы хотели бы иметь 0, это не сработало бы
2. @Serge да, я понял это сразу после добавления своего комментария, но все же лучше использовать Convert, так как таким образом вы получите действительное целое число, что является основным вопросом, который задавал OP.
Ответ №3:
Если это строка, используйте Convert.ToInt32()
using System;
public class Test
{
public static void Main()
{
string s = "00";
string s2 = "04";
int i = Convert.ToInt32(s);
int i2 = Convert.ToInt32(s2);
Console.WriteLine("{0}|{1}", i, i2);
}
}
Вывод:
0|4
По сравнению с TrimStart:
using System;
public class Test
{
public static void Main()
{
string s = "00";
string s2 = "04";
Console.WriteLine("{0}|{1}", s.TrimStart('0'), s2.TrimStart('0'));
}
}
Вывод:
|4
Ответ №4:
На самом деле самым простым, но наиболее полным было бы это:
@{
var to = Model.PageMeta.TestID == "00" ?
"All Tests" :
(Model.PageMeta.TestID.StartsWith("0") ?
Model.PageMeta.TestID.Substring(1) :
Model.PageMeta.TestID);
}