Вы должны изучить создание модели представления для информации, которую должна указывать эта конкретная c страница.
См. { ссылка } для более подробного ответа, но у вас есть две модели, показанные выше; Ваша модель «Регистрация» выглядит как модель ввода, где вы позволяете пользователям вводить свойства о пользователе, которого вы храните где-то, а модель «AssignedRoles» выглядит как модель домена, где вы храните отношения »за сцены ", вероятно, в базе данных или другом постоянном слое.
Однако, когда вы хотите представить эту информацию в своем представлении, вам нужна информация немного иная, чем при ее хранении, и именно здесь должна появиться модель представления. Модель представления может объединять информацию из нескольких различных моделей предметной области, чтобы обеспечить определенные c элементы данных, необходимые для ее отображения в вашем представлении. В своем бэкэнд-коде вы можете запросить как модель домена для ваших зарегистрированных пользователей, так и для ваших регистраций, и объединить их в единую модель представления, содержащую имя.
Следующий пример сокращен для ясности, чтобы проиллюстрировать концепция:
public class RegistrationDomainModel
{
public int RegistrationId { get; set; }
public string PropertyString { get; set; }
public int UserId { get; set; }
}
public class UserDomainModel
{
public int UserId { get; set; }
public string UserName { get; set; }
}
public class RegistrationViewModel
{
public string PropertyString { get; set; }
public string UserName { get; set; } // we don't care about displaying the user's ID here, just the name
}
public class MyController : Controller
{
[HttpGet]
public IActionResult Get(int registrationId)
{
var viewModel = new RegistrationViewModel();
// We can go do whatever work is needed to collect and relate the information we need to display. This is a very dirty example.
var myRegistrationDomainModel = _registrationDatabase.Get(registrationId);
var myUserDomainModel = _userDatabase.Get(myRegistrationDomainModel.UserId);
// The view model is generated with the information needed for display only.
viewModel.PropertyString = myRegistrationDomainModel.PropertyString;
viewModel.UserName = myUserDomainModel.UserName;
return View(viewModel);
}
}