вернуться к частичному виду как json? - PullRequest
0 голосов
/ 18 марта 2020

У меня было 2 просмотра "index" и "_Track". мне нужно вернуть свой список данных в "_Track" - это частичное представление. Может ли кто-нибудь помочь мне, потому что я получил эту ошибку. мне нужно вернуть список данных в частичное представление.

Ошибка "для каждого оператора не может работать с типом переменной не содержит публичные c определения экземпляра для getenumerator"

см. ссылочный код ниже.

Родительская модель.

 public class TrackingFormModel : BaseModel
{
    public string TrackingNumber { get; set; }
    public TrackingListModel TrackingList { get; set; } 
}

Дочерняя модель

public class TrackingListModel : BaseModel
{
    public string Name { get; set; }
    public string Departure { get; set; }
}

Index.cs html

@using ChenvelMobile.Web.Models.Tracking
@model TrackingFormModel
@{
ViewBag.Title = "index";
   Layout = null;
}
@using (Html.BeginForm("index", "tracking", FormMethod.Post))
{
@Html.HiddenFor(x => x.Id)
<div class="MainContainer">
    <div class="row">
        <div class="form-group">
            <div class="col-md-12">
                <h4>Track an Item</h4>
                <p>Hint: Enter the correct tracking number (Example. AU0002004)</p>
                <div class="input-group">
                    @Html.TextBoxFor(x => x.TrackingNumber, new { @class = "form-control", @id = "testSize", @placeholder = "Enter your box number..." })
                    <div class="input-group-btn">
                        <button class="btn btn-primary" type="submit" id="show">
                            <span class="glyphicon glyphicon-search btnSize" style="font-size: 20px"></span>
                        </button>
                    </div>
                </div>
                <br />
                @Html.Partial("_Track", Model)

            </div>
        </div>
    </div>
</div>
}

_Track.cs html (частичное представление)

@using ChenvelMobile.Web.Models.Tracking
@model TrackingListModel


@foreach (var item in Model)
{
<div>@item.Id</div>
<div>@item.Name</div>
<div>@item.Departure</div>
}

Контроллер

 public JsonResult Index(TrackingFormModel model)
    {
        string date = String.Format("{0:MM/dd/yyyy}", DateTime.Now);
        DateTime startdate = DateTime.Parse(date);
        DateTime prevoiusdate = startdate.AddDays(-90);
        var tracking = _cSI_DataService.Find(x => x.reciept_id == model.TrackingNumber).Where(x => Convert.ToDateTime(x.date_pl) > prevoiusdate).ToList();

        var list = (from t in tracking
                    join d in _departureItemsTableService.GetAll() on t.box_id.Trim() equals d.BoxNo.Trim() into departitem from departitems in departitem.DefaultIfEmpty()
                    join dt in _departureTableService.GetAll() on departitems?.DepartureId equals dt.DepartureId into dep from depart in dep.DefaultIfEmpty()

                    select new TrackingListModel
                    { 
                        Id = t.Id,
                        Name = t.firstname_s + " " + t.lastname_s,
                        Departure = depart?.DepartureDate ?? String.Empty,
                    });

        return Json(new { data = list.ToList() }, JsonRequestBehavior.AllowGet);
    }

1 Ответ

0 голосов
/ 18 марта 2020

Попробуйте передать список отслеживания в ваш частичный вид. В настоящее время вы передаете TrackingFormModel, а не ожидаемую TrackingListModel.

@Html.Partial("_Track", Model.TrackingList)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...