问题描述
我有一个方法可以将视图和模型返回到视图。
public async Task<IActionResult> Upload(IFormFile file){
//code shortened for brevity
ViewBag.Message = String.Format(cmdMessage);
return View("Index",three);
}
并且我有一个Kendo网格的视图,就像这样:
@model IEnumerable<ModelLayer.Models.TableNotificationModel>
@addTagHelper *,Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper *,Kendo.Mvc
@using Kendo.Mvc.UI
@{ ViewData["Title"] = "UPLOAD"; }
<div class="clearfix">
@(Html.Kendo().Grid<ModelLayer.Models.TableNotificationModel>()
.Name("notificationGrid")
.Pageable(pageable => pageable.Input(true).Numeric(false))
.Scrollable()
.Sortable()
.Filterable()
.ColumnMenu()
.Columns(columns =>
{
columns.Bound(c => c.OPERATOR_OBJECTID).Title("ID").Hidden();
columns.Bound(c => c.SETTLEMENT_OBJECTID).Title("settlement code").Width("100px");
columns.Bound(c => c.TECHNOLOGY_OBJECTID).Title("tech code").Width("100px");
columns.Bound(c => c.UPLOAD_SPEED_CLASS_OBJECTID).Title("upload").Width("100px");
columns.Bound(c => c.DOWNLOAD_SPEED_CLASS_OBJECTID).Title("download").Width("100px");
columns.Bound(c => c.DATA_CATEGORY_QOS_OBJECTID).Title("data category").Width("100px");
columns.Bound(c => c.SHAPE).Title("shape").Width("100px");
columns.Bound(c => c.messageOut).Title("message").Width("100px");
})
.Excel(excel => excel
.FileName("Kendo UI Grid Export.xlsx")
.Filterable(true)
.ProxyURL(Url.Action("Excel_Export_Save","Upload")))
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(20)
.Read(read => read.Action("Upload_Read","Upload").Data("additionalData"))
)
)
</div>
<script>
function additionalData(e) {
return {
additional: "custom Text"
};
}
</script>
我有这个js函数additionalData
,但是我不确定如何将模型从函数发送到控制器中的方法,再到此Upload_read
方法,该方法将用数据填充Kendo网格。 / p>
public ActionResult Upload_Read([DataSourceRequest] DataSourceRequest request)
{
DataSourceResult dataSource = result.ToDataSourceResult(request);
return Json(dataSource.ToDataSourceResult(request));
}
我不确定如何发送模型。有什么建议或建议吗?
解决方法
也许这会派上用场,这是我的写法:
function sendAdditional() {
var data = JSON.parse('@Html.Raw(Json.Serialize(Model))');
console.log("index data",data)
return {
model: data
}
}
和控制器
public ActionResult Upload_Read([DataSourceRequest] DataSourceRequest request,List<TableNotificationModel> model)
{
return Json(dataSource.ToDataSourceResult(request));
}
并且我正在从视图中获取控制器中的模型列表。
,为什么要将数据发送到服务器,以便以后可以在表中获取它? 如果您只需要构建表,请使用:
<div class="clearfix">
@(Html.Kendo().Grid(Model)
.Name("notificationGrid")
...
如果问题在排序等,则只需将参数ServerOperation(false)放进去。