Pass-Liste Wert auf view-model-variable in class ASP.NET MVC
Muss ich weiterleiten Liste von records zu Klassen-variable (Benutzer und Gruppen) im Hinblick auf Modell, aber ich kann nicht sehen, view-model-Objekt (_UserAndGroupModel) erkennen, dessen Objekt der Klasse, bin ich nicht ganz sicher, was ich hier vermisst.
ViewModel
public class UserGroup_ViewModel
{
public User Users { get; set; }
public Group Groups { get; set; }
}
jede Klasse user und die Gruppe haben Ihre Variablen und Sammlungsobjekte
In folgenden Zeilen von code, den ich übergeben zu müssen, Liste und und zuweisen, Benutzer-Objekt und die Gruppen-Objekt in der Ansicht Modell
public partial class UserManagement_Services
{
List<UserGroup_ViewModel> _UserAndGroupModel = new List<UserGroup_ViewModel>();
public void GetUserAndGroups()
{
using(var _uow = new UserManagement_UnitOfWork())
{
_UserAndGroupModel.Users= _uow.User_Repository.GetAll();
_UserAndGroupModel.Groups = _uow.Group_Repository.GetAll();
//error here ??????????????
}
}
}
Controller-Methode
public ActionResult AddUserInGroup()
{
var _UserAndGroupList = _userServices.GetUserAndGroups();
return PartialView("AddUserInGroup_Partial", _UserAndGroupList);
}
Ansicht
@model IEnumerable<App.DAL.Model.UserGroup_ViewModel>
@Html.DisplayNameFor(model => Modell)
@Html.DisplayNameFor(model => Modell.LastName)
@Html.DisplayNameFor(model => Modell.Alter)
@Html.DisplayNameFor(model => Modell.EmailAddress)
@foreach (var item in Model)
{....
In der Ansicht kann ich nicht sehen ViewModel-Klasse, variable, wenn ich model => model.????
- Verwenden Sie nicht
var
wenn Sie wissen, dass_userServices.GetUserAndGroups()
gibt eineUserGroup_ViewModel
dann verwenden Sie es.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde es ein wenig anders. Sie wollen wieder einen einzelnen view-Modell zu der Ansicht, bestehend aus einer Liste von Benutzern sowie eine Liste von Gruppen (bitte korrigiert mich wenn ich falsch Liege). Ich hätte initialisiert die Listen leer (enthält keine Elemente) im Konstruktor der view-Modell:
Dann in Ihre service-layer, den Sie contruct view-Modell und füllen Sie die Benutzer und Gruppen, und dann wieder die Ansicht Modell, um der aufrufenden Methode, in diesem Fall würde ich davon ausgehen, das der controller die action-Methode:
Nur stellen Sie sicher, dass
User_Repository.GetAll()
undGroup_Repository.GetAll()
haben einen RückgabetypList<User>
undList<Group>
.Und dann ist dein controller könnte wie folgt Aussehen:
Ihrer Ansicht nach müssten die folgenden, akzeptieren Sie die view-Modell übergeben, indem Sie die action-Methode und zeigen Sie die Benutzer und Gruppen:
Den code oben nicht getestet wurde überhaupt, könnte es ein paar Probleme mit dem @ - symbol in der Ansicht. Ich kann sehen, was Sie versuchen, zu erhalten. Eine Liste der Benutzer in einer Tabelle, dann pro Zeile eine dropdown-Liste Benutzer-Gruppen, die Sie auswählen möchten, und senden Sie dann zurück an den controller. Das ist out of scope für diesen Beitrag, ein neues zu beginnen. Ich habe geholfen, dich auf die richtige Spur, Sie brauchen nur zu verbringen einige mehr Zeit mit dem Lesen auf ASP.NET MVC.
Ich hoffe, das hilft 🙂
Dein Fehler ist, stammt aus dieser Linie
_UserAndGroupModel
ist einList
, also, wenn du mit_UserAndGroupModel.Users = ..
.diese ungültig ist, weil
Users
ist eine Eigenschaft eines Element in der Liste nicht die Liste selbst.Jedoch, diese
arbeiten würde, zum Beispiel.
hier ist auch eine Antwort und vielen Dank Ammar für die Hilfe!
.