使我的视图模型工作,它必须是一个列表

本文关键字:列表 一个 视图 我的 模型 工作 | 更新日期: 2023-09-27 18:34:27

我在匹配SubsViewModels中得到一个错误(我知道如果它不是列表,错误不会出现(,但它必须是一个列表,因为我的视图模型必须在索引中显示替代和距离

错误是"列表不包含'距离'和'替换'的定义">

我的视图模型

public class MatchingSubstituteViewModel
{
    public Substitute Substitute { get; set; }
    public decimal Distance { get; set;}
}

我的控制器

 public ActionResult Test(FindMatchRequestModel request)
    {
        //TestData Find subject and level  
        var list = FindSubstituteSubjectLevels(new FindMatchRequestModel()
        {
            LevelID = 1,
            SubjectID = 3
        });

        var school = db.Schools.ToList().FirstOrDefault();
        var schoolAddress = school.HomeAddress;

        List<MatchingSubstituteViewModel> matchingSubsViewModels = new List<MatchingSubstituteViewModel>();
        foreach (var item in list)
        {
            var substtitute = item.Substitute;
            var subAddress = substtitute.HomeAddress;
            var distance = HomeAddress.GetGeographicDistance(schoolAddress.Longitude, schoolAddress.Latitude, subAddress.Longitude, subAddress.Latitude);
            matchingSubsViewModels = new List<MatchingSubstituteViewModel>()
            {
                Substitute =  item.Substitute, // error List<MatchingSubstituteViewModel> does not contain a difinition for 'Substitute '
                Distance = distance // error List<MatchingSubstituteViewModel> does not contain a difinition for 'Distance'
            };
        }
        return View(matchingSubsViewModels);
    }

使我的视图模型工作,它必须是一个列表

<pre>
 List<MatchingSubstituteViewModel> lstMatchingSubsViewModels = new List<MatchingSubstituteViewModel>();
    foreach (var item in list)
    {
        var substtitute = item.Substitute;
        var subAddress = substtitute.HomeAddress;
        var distance = HomeAddress.GetGeographicDistance(schoolAddress.Longitude, schoolAddress.Latitude, subAddress.Longitude, subAddress.Latitude);
        matchingSubsViewModels = new MatchingSubstituteViewModel()
        {
            Substitute =  item.Substitute, // errors List<MatchingSubstituteViewModel> does not contain a difinition for 'Substitute '
            Distance = distance // errors List<MatchingSubstituteViewModel> does not contain a difinition for 'distance'
        };
     lstMatchingSubsViewModels .add(matchingSubsViewModels );
    }
   return View(lstMatchingSubsViewModels );

   // and in the view
  @Model List<MatchingSubstituteViewModel>
 foreach(var cm in @Model) {
 cm.Substitute 
 }