Samps Pro Ответов: 1

Расширение представления результатов приведет к перечислению ienumerable."


I'm developing the master detail data entry form without using entityframwork. I have two tables deal making and deal details for this purpose and i have developed two model classes for master and detail and when I pass the values of master and detail to the controller using ajax call. its going well and all records are coming in the controller I check it by putting a breakpoint. but the issue is this it's not going inside while checking model state. It gives model state false and giving the error of " Results View = Expanding the Results View will enumerate the IEnumerable."

please help me as soon as possible

public JsonResult Create( ClsDealMaking clsDeal ) {
 if (ModelState.IsValid){
//error here  model state is false not understanding the reason
}

return Json(JsonRequestBehavior.AllowGet); }


Что я уже пробовал:

public class ClsDealMaking
    {
        public int DealSysSeq { get; set; }
        public string DealCode { get; set; }
        public string DealName { get; set; }
        public DateTime ActiveFromDate { get; set; }
        public DateTime ActiveToDate { get; set; }
        public double TotalCost { get; set; }
        public double Discount { get; set; }
        public double Dealoffer { get; set; }
        public string Remarks { get; set; }
       // public Byte[] DealImage { get; set; }
        public virtual ICollection<clsDealDetail> DealDetails { get; set; }
    }

Dave Kreskowiak

Это вовсе не ошибка. Это сообщение "заполнитель", которое отладчик выставляет, чтобы показать вам, что это коллекция или IQueryable еще не был выполнен.

Richard Deeming

Репост
Вы уже опубликовали этот вопрос:
https://www.codeproject.com/Questions/5246635/Send-array-values-from-view-to-controller-without[^]

Samps Pro

но я ничего не понимаю, пожалуйста, объясните

1 Ответов

Рейтинг:
7

Dave Kreskowiak

Модельное Государство.IsValid является ложным, потому что данные, которые были переданы обратно со страницы, на которую смотрел клиент, не соответствуют ограничениям на модель, которую он должен заполнять, а именно на ваш cldDeal (ClsDealMaking).

Вы не должны использовать объекты сущностей в качестве объектов представления для передачи данных между представлением и контроллерами. Вы должны сделать отдельный набор классов для этой цели.


BillWoodruff

+5

Samps Pro

U означает режимы это
но не понимаю объясните пожалуйста
мастер-класс публичного класса
{
List <clsdealmaking> MAsterdeal{ get; set; }
List<clsdealdetail> detailDeal{ get; set; }

}

Samps Pro

не понимаю пожалуйста дайте еще несколько объяснений чтобы решить эту проблему а также Как получить доступ к обоим мастер классам деталей Могу ли я получить доступ в контроллере используя этот новый класс
мой класс детализации выглядит следующим образом

Dave Kreskowiak

Какие данные представление возвращает контроллеру? Вам нужно создать класс, который имеет соответствующие свойства для хранения этих данных. Эти классы были бы специально предназначены для передачи данных между вашими контроллерами и представлением и обратно. Они должны иметь свойства для данных, которые представление должно редактировать, и любых дополнительных данных, которые представление должно редактировать для этих данных.

Не используйте классы Entity Framework для этой цели. Классы сущностей предназначены для перемещения между вашими контроллерами и базой данных.

Samps Pro

публичный класс clsDealDetail
{
public int DetailSysSeq { get; set; }
public int DealSysSeq { get; set; }
public int ItemSysSeq { get; set; }
public int Qty { get; set; }
общественные двойная цена { получить; набор; }
публичный виртуальный ClsDealMaking DealMaking { get; set; }
}