Следующий код иллюстрирует использование модели класса: Student
Проверка ИНТ данных из базы данных
public class Student: IAbstract
{
public int StudentID { get; set; }
public string FirstName { get; set; }
public int Age { get; set; }
//Some methods
}
этого метода index()
от StudentController
public ActionResult Index()
{
var model = new List<Student>();
var objStudent = new Student();
var cmd = new SqlBuilder();
cmd.CommandText = "SELECT StudentID, FirstName, Age FROM Students";
var data = objStudent.Select(cmd);
foreach (DataRow item in data.Tables[0].Rows)
{
model.Add(new Student
{
StudentID = Convert.ToInt32(item["StudentID"]),
FirstName = item["FirstName"].ToString(),
Age = item.IsNull("Age")?0:Convert.ToInt32(item["Age"]) //Here
});
}
return View("Index", model);
}
Как вы можете видеть, что я должен проверить, если " Age "имеет значение null, потому что в моем db (для целей тестирования) некоторые ученики не имеют возраста. Но я не хочу устанавливать Age
на 0
для просмотра, так что это лучший способ показать ячейку «void» в представлении вместо 0
?.
Часть кода вида:
<body>
<table>
<tr>
<th>
@Html.DisplayNameFor(model => model.StudentID)
</th>
<th>
@Html.DisplayNameFor(model => model.FirstName)
</th>
<th>
@Html.DisplayNameFor(model => model.Age)
</th>
<th></th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.StudentID)
</td>
<td>
@Html.DisplayFor(modelItem => item.FirstName)
</td>
<td>
@Html.DisplayFor(modelItem => item.Age)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id = item.StudentID }) |
@Html.ActionLink("Details", "Details", new { id = item.StudentID }) |
@Html.ActionLink("Delete", "Delete", new { id = item.StudentID })
</td>
</tr>
}
</table>
</body>
Я думал об этом, но я получаю следующую ошибку: Ошибка Тип условного выражения не может быть определен, потому что нет никакого неявного преобразования между '' и 'int' ' –
FacundoGFlores
whoops, yep, вам нужно указать право стороны 'int?', чтобы сделать условную операцию действительной. См. Мое редактирование. – Jonesopolis