我在Kendo MultiSelect
项目中使用mvc5
。所以我有multiselect
的视图:
@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个viewModels:
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
中,以JSON格式从Book控制器获取所有公共房屋。接下来我选择了一些值:
那么,我如何在public ICollection<PublicHouseViewModel> PublicHouses { get; set; }
的{{1}}属性中传递此选定值?
答案 0 :(得分:1)
您可以使用:
public int[] PublicHouses { get; set; }
而不是:
public ICollection<PublicHouseViewModel> PublicHouses { get; set; }
或者您可以在BookViewModel
中创建一个仅用于发布的新字段。
当您从kendoMultiSelect发布值时,他只发布"dataValueField"
。在您仅发布id后,您可以在POST操作中执行其余逻辑。
这取决于您实施POST
行动的方式以及两个表格之间的关系:是1...N
还是N....N
。