У меня есть проект MVC 4, который должен создать набор записей для предложения, а затем сохранить его следует перенаправить на определенную страницу, где я буду отображать все записи.Просмотр не отображает данные, переданные по модели
Вот проблема после сохранения, она будет перенаправляться, но данные, переданные из модели для просмотра, не обновляются/не отображаются на представлении.
Вот мой контроллер действий для получения данных:
private CoverageViewModel coveragedata = new CoverageViewModel();
private NewProposalDBContext db = new NewProposalDBContext();
//
// GET: /Coverage/
public ActionResult Index()
{
CoverageViewModel coverage = new CoverageViewModel();
List<Institution> institutions = db.Institutions.ToList();
if (coveragedata.Proposal != null)
{
coverage.Institution = institutions;
coverage.Proposal = (List<NewProposal>)Session["coveragedata"];
}
else
{
List<NewProposal> listProposal = new List<NewProposal>();
listProposal = db.NewProposal.ToList();
List<LeadsManagement> listLeadsMgt = new List<LeadsManagement>();
listLeadsMgt = db.LeadsManagements.ToList();
List<LeadEmployees> listLeadsEmployees = new List<LeadEmployees>();
listLeadsEmployees = db.LeadEmployees.ToList();
List<VacsInAction> listVacsInAction = new List<VacsInAction>();
listVacsInAction = db.VacsInActions.ToList();
List<NewProposal> listofImplementedProposal = new List<NewProposal>();
listofImplementedProposal =
db.NewProposal.Where(x => x.Status.StatusID == 3).ToList();
coverage.Institution = institutions;
coverage.Proposal = listProposal;
coverage.LeadsManagement = listLeadsMgt;
coverage.LeadsEmployee = listLeadsEmployees;
coverage.VacsInAction = listVacsInAction;
}
return View(coverage);
}
Вот мой взгляд я сессия только, чтобы получить последние данные из контроллера и попытаться перезаписать значение модели.
@{
ViewBag.Title = "Index";
if(Session["coveragedata"] != null)
{
Model.Proposal = (List<ULIV.ViewModels.NewProposal>)Session["coveragedata"];
}
if(Session["leadsMgt"] != null)
{
Model.LeadsManagement = (List<ULIV.Models.LeadsManagement>)Session["leadsMgt"];
}
if(Session["leadsEmp"] != null)
{
Model.LeadsEmployee = (List<ULIV.Models.LeadEmployees>)Session["leadsEmp"];
}
Вот фактическое отображение данных:
@foreach (var proposal in Model.Proposal)
{
if (proposal.Status.StatusID == 1)
{
<tr>
<td align="center">
@Html.DisplayFor(modelItem => proposal.ProposalCode)
</td>
<td align="center">
@Html.DisplayFor(modelItem => proposal.VaccineType.VaccineTypeName)
</td>
<td align="center">
@Html.DisplayFor(modelItem => proposal.Product.ProductName)
</td>
<td align="center">
@Html.DisplayFor(modelItem => proposal.ProposedUnitPrice)
</td>
<td align="center">
@Html.DisplayFor(modelItem => proposal.ProposedVolume)
</td>
<td align="center">
@Html.DisplayFor(modelItem => proposal.Status.StatusName)
</td>
</tr>
}
}
Почему вы используете сеанс? Если вы перенаправляете, просто создайте модель с обновленными данными для нового представления и отображения с помощью модели –
. Что означает 'if (coveragedata.Proposal! = Null)' - он всегда будет ** быть нулевым (вы инициализируйте новый экземпляр покрытия каждый раз, когда вы вызываете метод!). И прекратите использовать сеанс! –