Hello,
 
I'm constructing a view where I render the complete list of the classes grouped on a ViewModel. These are Stores and Departments (as cities).
 
I have a problem when I'm constructing the view, since the segment where I put the 'asp-action' tag helper.
 
This is my viewmodel called StoreIndexData:
-   public class StoreIndexData  
-   {  
- public List Stores { get; set; }  
- public List Departments { get; set; }  
-   }  
This is my Index method where I initialize the models and send it to the view:
 
- public async Task Index()  
-         {  
-             var viewModel = new StoreIndexData();  
-             viewModel.Stores = await _context.Stores  
-                 .Include(c => c.StoreChains)  
-                 .Include(d => d.Districts)  
-                 .AsNoTracking().ToListAsync();  
-   
-             viewModel.Departments = new List();  
-             viewModel.Departments = (from department in _context.Departments  
-                               select department).ToList();  
-             viewModel.Departments.Insert(0, new Department { DepartmentID = 0, DepartmentName = "Select" });  
-             ViewBag.ListofDepartment = viewModel.Departments;  
-   
-             return View(viewModel);  
-         }  
Then, in my view, I have this segment to show a dropdownlist for the department class:
-                 
-                         class="form-control"  
-                         asp-for="DepartmentID"  
-                         asp-items="@(new  SelectList(ViewBag.ListofDepartment,"DepartmentID","DepartmentName"))">  
-             
 When I debug the application, I get the following error:
 
- 'StoreIndexData' does not contain a definition for 'DepartmentName' and no extension method 'DepartmentName' accepting a first argument of type 'StoreIndexData' could be found (are you missing a using directive or an assembly reference?)-         #pragma warning restore 1998
 
- 'StoreIndexData' does not contain a definition for 'DepartmentID' and no extension method 'DepartmentID' accepting a first argument of type 'StoreIndexData' could be found (are you missing a using directive or an assembly reference?)-         #pragma warning restore 1998
 
So, which would be the correct way to use the tag helpers in this case?
 
I tried to debug the application deleting the asp-for tag helper and it runs as expected, but I don't believe this is the right thing to do. Any explanation on why is it important to use this tag helper?
 
Thanks! 
 
 _EDIT:
 
Ok, so first, since I'm using a ViewModel, I would need to access the model that contains this property, which is Department, like this:
 
- for="Departments.DepartmentName" class="control-label">    
BUT, I don't have a singular Department, so, If i changed the ViewModel like this: 
-   public class StoreIndexData  
-   {  
- public List<Store> Stores { get; set; }  
- public List<Department> Departments { get; set; }  
- public string DepartmentName { get; set; }  
- public int DepartmentID { get; set; }  
-   }  
and change the view back to this: 
- <label asp-for="DepartmentName" class="control-label"></label>  
-                 <select   
-                         class="form-control"  
-                         asp-for="DepartmentID"  
-                         asp-items="@(new  SelectList(ViewBag.ListofDepartment,"DepartmentID","DepartmentName"))"></select>  
 It works, but I'm not sure if this is the correct procedure.