无法从KendoUI获取Post值

问题描述 投票:1回答:1

我按照qazxsw poi使用Kendo UI Multi Select添加新项目

https://demos.telerik.com/kendo-ui/multiselect/addnewitem

控制器:

enter image description here

模型总是得到空值,我也尝试没有[FromForm] [HttpPost] [Route("admin/blog/PostTag")] public IActionResult PostTag([FromForm]TagModel models) { return Ok(); } 或使用[FromBody],但它不起作用。

PostTag(TagModel models)

TagModel类:

enter image description here

KendoUi在查看页面上:

public class TagModel
{
    public int Id     {get;set;}
    public string Tag { get; set; }
}
c# asp.net asp.net-core kendo-ui
1个回答
0
投票

我不知道为什么不能从Kendo中获取价值,所以我从Request中检索数据。

<select asp-for="Tag" data-placeholder="Chọn tag"></select> <script id="noDataTemplate" type="text/x-kendo-tmpl"> # var value = instance.input.val(); # # var id = instance.element[0].id; # <div> No data found. Do you want to add new item - '#: value #' ? </div> <br /> <button class="k-button" onclick="addNew('#: id #', '#: value #')" ontouchend="addNew('#: id #', '#: value #')">Add new item</button> </script> <script> function addNew(widgetId, value) { var widget = $("#" + widgetId).getKendoMultiSelect(); var dataSource = widget.dataSource; if (confirm("Are you sure?")) { dataSource.add({ Id: 0, Tag: value }); console.log(dataSource); dataSource.sync(); //dataSource.one("requestEnd", function (args) { // if (args.type !== "create") { // return; // } // console.log(args.type) // var newValue = args.response[0].id; // dataSource.one("sync", function () { // widget.value(widget.value().concat([newValue])); // }); //}); //dataSource.sync(); } } </script> <script> $(document).ready(function () { var crudServiceBaseUrl = "/admin/blog"; var dataSource = new kendo.data.DataSource({ batch: true, transport: { read: { url: "https://localhost:44383/admin/blog/gettags" }, create: { url: "https://localhost:44383/admin/blog/posttag", type: "POST", dataType: "jsonp" // "jsonp" is required for cross-domain requests; use "json" for same-domain requests }, parameterMap: function (data, type) { if (type != "read" && data.models) { console.log(data.models); return { models: kendo.stringify(data.models) }; }; } }, schema: { model: { id: "Id", fields: { Id: { type: "number" }, Tag: { type: "string" } } } } }); $("#Tag").kendoMultiSelect({ filter: "startswith", dataTextField: "Tag", dataValueField: "Id", dataSource: dataSource, noDataTemplate: $("#noDataTemplate").html() }); }); </script>

© www.soinside.com 2019 - 2024. All rights reserved.