Я новичок в MVC и использую сетку пользовательского интерфейса кендо в своем проекте. Я столкнулся с проблемой, что я получаю «ноль» в параметре контроллера, хотя данные проходят через представление. Пожалуйста, смотрите приведенный ниже код.
Вот моя часть кода из View
@model IEnumerable<WeBOC.Support.Entities.Vessel>
@{
ViewBag.Title = "Vessels";
}
<h2>Vessels</h2>
@(Html.Kendo().Grid(Model)
.Name("Grid")
.Columns(column =>
{
column.Bound(c => c.VIRNbr).Width(100).ClientTemplate(@Html.ActionLink("#=VIRNbr#", "VesselInspector", new { id = "#=VesselVisitId#" }).ToHtmlString()).Title("VIR No.").Width(150);
column.Bound(c => c.VesselName).Width(150).Title("Vessel Name");
column.Bound(c => c.InboundVoyageNbr).Width(70).Title("IB Vyg");
column.Bound(c => c.OutboundVoyageNbr).Width(70).Title("OB Vyg");
column.Bound(c => c.ETA).Width(100).Title("ETA").Format("{0:dd/MM/yyyy HH:mm}");
column.Bound(c => c.ArrivalDate).Width(100).Title("ATA").Format("{0:dd/MM/yyyy HH:mm}");
})
.Groupable()
.Sortable()
.Pageable()
.Filterable()
.DataSource(datasource => datasource
.Ajax()
.ServerOperation(true)
.PageSize(20)
.Read(read => read
.Action("Vessels_Read", "VesselVisit", new { id = "\\#=State\\#"})
))
)
И это метод контроллера
public ActionResult Vessels_Read([DataSourceRequest] DataSourceRequest request, string id)
{
return Json(GetVessels(id).ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
}
Почему я получаю значение null в идентификаторе параметра, несмотря на то, что он передается через представление.
public ActionResult Vessels(string id)
{
return View(GetVessels(id));
}
public IEnumerable<Vessel> GetVessels(string phase)
{
IEnumerable<Vessel> vsl = null;
vsl = this._repository.GetVesselByPhase(phase);
return vsl;
}
Любая помощь будет оценена.
Спасибо, Овайс.
State
является членомVessel
? Добавьте точку останова наvsl = this._repository.GetVesselByPhase(phase);
и проверьте, считывается ли это значение из репозитория при первом доступе к вашему представлению. - person Alex Costa   schedule 27.09.2013