我正在使用 Kendo MultiSelect
在我的 mvc5
项目。所以我有一个 multiselect
的 View :
@model Library.ViewModels.Models.BookViewModel
@{
ViewBag.Title = "Edit";
}
<script>
$(document).ready(function () {
$("#multiselect").kendoMultiSelect({
placeholder: "--Select Public Houses--",
dataTextField: "PublicHouseName",
dataValueField: "PublicHouseId",
autoBind: true,
dataSource: {
transport: {
read: {
dataType: "json",
url: "/book/getallpublichouses"
}
}
}
});
});
</script>
我有 2 个 View 模型:
public class BookViewModel
{
public int BookId { get; set; }
public string Name { get; set; }
public string AuthorName { get; set; }
public int YearOfPublishing { get; set; }
public ICollection<PublicHouseViewModel> PublicHouses { get; set; }
}
public class PublicHouseViewModel
{
public int PublicHouseId { get; set; }
public string PublicHouseName { get; set; }
public string Country { get; set; }
public ICollection<BookViewModel> Books { get; set; }
}
在我的 Kendo MultiSelect
a 从 Book Controller 中以 JSON 格式获取所有 Public Houses。接下来我选择了一些值:
那么,我怎样才能在 public ICollection<PublicHouseViewModel> PublicHouses { get; set; }
中传递这个选定的值呢?属性(property) BookViewModel
?
最佳答案
您可以使用:
public int[] PublicHouses { get;放; }
代替:
public ICollection<PublicHouseViewModel> PublicHouses { get; set; }
或者您可以在 BookViewModel
中创建一个仅用于发布的新字段。
当您从 kendoMultiSelect 发布值时,他仅发布 "dataValueField"
。仅发布 ID 后,您可以在 POST 操作中执行其余逻辑。
这取决于您如何实现 POST
操作以及两个表之间的关系:是 1...N
还是 N... .N
.
关于javascript - 如何将选定的值从多选(Kendo MultiSelect)发送到 viewModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49527473/