Завершите Noob здесь - пытаясь изучить Dot Net Core 2 Razor Pages.Пытался выяснить, как сделать «грязное» редактирование на некоторых из моих моделей.Собирался попытаться использовать рефлексию, но это не сработало - или, очевидно, я не знал, что делал.
Скажем, моя модель данных определяется как:
public class Book
{
public int Id { get; set; } = 0;
[Required]
[MaxLength(75)]
[Display(Name = "Book Title")]
public string Title { get; set; }
[Required]
[MaxLength(50)]
public string Author { get; set; }
[Required]
[Range(0,99)]
public decimal Price { get; set; }
[Required]
[Range(0, 5)]
public int Rank { get; set; }
}
Я обнаружил, что если использовать:
@Html.EditorFor(model => model.Book)
... на моей странице .cshtml (редактировать или создавать), я могу получить базовый экран редактирования или создания, который учитывает проверку и другие атрибуты для всех полей вмодель.Большой!Я мог бы использовать это для базового редактирования данных администратора.
Проблема двоякая:
- На моей странице редактирования мне нужно, чтобы мое поле "Id" было доступно только для чтения
- На моей странице создания мне нужно, чтобы мое поле "Id" по умолчанию было равно 0 и было доступно только для чтения
Любая комбинация:
//[ScaffoldColumn(false)]
//[HiddenInput(DisplayValue =false)]
//[HiddenInput]
//[DefaultValue(0)]
//[ReadOnly(true)]
//[Editable(false)]
... похоже, что нетработа.
Есть ли способ выполнить два моих требования, перечисленных выше?