Привязать список объектов с помощью страницы Razor - PullRequest
0 голосов
/ 08 октября 2018

У меня есть бритвенные страницы.Я подготовил в обработчике список (visitorTypes), я только хочу связать их.есть кое-что, что я пропустил, но я не знаю, что

Вот мой код C #

[ModelBinder(Name ="Visitors")]
public ICollection<VisitorType> VisitorTypes { get; set; }

public IActionResult OnGetListOfVisitorTypeAsync()
{
    VisitorTypes = _db.VisitorTypes.ToList();
    return RedirectToPagePermanent("/Visitors",VisitorTypes);
}

А вот моя страница бритвы

<div class="container">
        <form method="get"  asp-page-handler="ListOfVisitorType" >
        @foreach (var item in Model.VisitorTypes)
        {
            <label>@item.VisitorTypeName.ToString() </label>
        }
            </form>
    </div>

может кто-топожалуйста, объясните, что я делаю неправильно (я пытался вернуть список, я пытался сделать его недействительным, но ни один из них не работает со мной)

Вот модал

  private string _VisitorTypeName { get; set; }
    public string VisitorTypeName { get {return _VisitorTypeName; } set { _VisitorTypeName = value; } }
    ICollection<Visitor> Visitors { get; set; }

Ответы [ 3 ]

0 голосов
/ 08 октября 2018

Возможно, вы указали неправильную модель с помощью "@model?"на странице бритвы.

0 голосов
/ 08 октября 2018

Это довольно просто

  1. Для начала вам нужно узнать, как на самом деле работает MVC и что это такое:
    • MVC - это архитектурный паттерн, мы все слабо связаны в терминахMODEL, View и Controller
    • Так что это не значит, что нельзя писать код напрямую в «Razor View», например, как мы пишем JavaScript напрямую в HTML или View.для разделения мы создаем файл .JS, чтобы отделить код скрипта от представления (HTML).

Теперь приступим к реальной работе

  1. Прежде чем получить доступ к списку (VisitorTypes), его необходимо объявить и инициализировать значением в самом razorview

    @{
    
      List<VisitorTypes> listVisitorTypes = _db.VisitorTypes.ToList();
    }
    
  2. И, наконец, отобразить список:

    @foreach (var item в listVisitorTypes) {@ item.VisitorTypeName.ToString ()}
0 голосов
/ 08 октября 2018

Что если вы сгенерируете свои данные, когда загрузится ваше View , что-то вроде этого:

public IActionResult Visitors()
{
    VisitorTypes = _db.VisitorTypes.ToList();
    return View(VisitorTypes);
}
...