Ich möchte die Modellbindung übergeben, um während des Rückrufs die Gridview zurück zum Controller zu entwickeln, aber es ist fehlgeschlagen.Wie wird die Modellbindung gesendet, um während des Rückrufs die Gridview zurück zum Controller zu entwickeln?
Modelle
public class UploadExcelError
{
public int rowNumber { get; set; }
public string errorMessage { get; set; }
}
public class UploadViewModel
{
public List<UploadExcelError> UploadExcelErrors { get; set; }
public UploadFile UploadFile { get; set; }
}
UploadErrorPartial.cshtml
@using ControlTower2.Models
@model ControlTower2.Models.UploadViewModel
@if (Model != null)
{
if (Model.UploadExcelErrors != null)
{
@Html.DevExpress().GridView(
settings =>
{
settings.Name = "gridViewExcelError";
settings.CallbackRouteValues = new { Controller = "PurchaseOrder", Action = "FilteringError", xyz = Model };
settings.SettingsBehavior.AllowSort = false;
settings.SettingsPager.Mode = GridViewPagerMode.ShowAllRecords;
settings.Columns.Add(column => { column.FieldName = "rowNumber"; column.Caption = "Excel Row#"; });
settings.Columns.Add(column => { column.FieldName = "errorMessage"; column.Caption = "Error Message"; });
settings.Settings.ShowHeaderFilterButton = true;
var headerFilterMode = GridHeaderFilterMode.List;
foreach (GridViewDataColumn column in settings.Columns)
column.SettingsHeaderFilter.Mode = headerFilterMode;
}
).Bind(Model.UploadExcelErrors).GetHtml()
}
}
-Controller
public ActionResult FilteringError(UploadViewModel xyz)
{
return PartialView("UploadErrorPartial", xyz);
}
xyz
ist im obigen Code null.
ich auch versucht:
settings.CallbackRouteValues = new { Controller = "PurchaseOrder", Action = "FilteringError", xyz = Model.UploadExcelErrors };
public ActionResult FilteringError(List<UploadExcelError> xyz)
{
UploadViewModel uploadViewModel = new UploadViewModel();
uploadViewModel.UploadExcelErrors = xyz;
return PartialView("UploadErrorPartial", uploadViewModel);
}
xyz
ist nicht null, aber Zahl ist gleich Null. Aber es hat zeigen vier Reihen von Daten auf UploadErrorPartial.cshtml
Ich habe versucht, zu Viewdata:
UPDATE - Viewdata nur überträgt Daten von der Steuerung zu sehen, das ist, warum dies nicht funktionieren wird.
if (Model.UploadExcelErrors != null)
{
ViewData["xyz"] = Model;
@Html.DevExpress().GridView(
settings =>
{
settings.Name = "gridViewExcelError";
settings.CallbackRouteValues = new { Controller = "PurchaseOrder", Action = "FilteringError" };
settings.SettingsBehavior.AllowSort = false;
settings.SettingsPager.Mode = GridViewPagerMode.ShowAllRecords;
settings.Columns.Add(column => { column.FieldName = "rowNumber"; column.Caption = "Excel Row#"; });
settings.Columns.Add(column => { column.FieldName = "errorMessage"; column.Caption = "Error Message"; });
settings.Settings.ShowHeaderFilterButton = true;
var headerFilterMode = GridHeaderFilterMode.List;
foreach (GridViewDataColumn column in settings.Columns)
column.SettingsHeaderFilter.Mode = headerFilterMode;
}
).Bind(Model.UploadExcelErrors).GetHtml()
}
public ActionResult FilteringError()
{
UploadViewModel uploadViewModel = (UploadViewModel)ViewData["xyz"];
return PartialView("UploadErrorPartial", uploadViewModel);
}
uploadViewModel
bekommen null von (UploadViewModel)ViewData["xyz"]
.