Это немного странно, чего я никогда раньше не испытывал, и поиск не дал результатов, соответствующих происходящему.У меня есть простая форма в моем веб-приложении MVC, которое использует библиотеку KendoUI.Одно из моих полей ввода называется «CarName», которое устанавливается с помощью jQuery.
Вот раскрывающийся список, в котором есть событие изменения, при этом значение копируется в стандартное текстовое поле ввода.
@(Html.Kendo().DropDownList()
.Name("Cars")
.DataTextField("Name")
.DataValueField("CarId")
.MinLength(3)
.Events(e => e.Change("carChange"))
.Filter(FilterType.Contains)
.DataSource(source => {
source.Custom()
.ServerFiltering(true)
.ServerPaging(true)
.PageSize(80)
.Type("aspnetmvc-ajax")
.Transport(transport => {
transport.Read("ReadCars", "Home");
})
.Schema(schema => {
schema
.Data("Data")
.Total("Total")
.Errors("Errors");
});
})
.Virtual(v => v.ItemHeight(30)))
Вот стандартное текстовое поле
<input type="text" id="CarName" name="CarName" />
При изменении раскрывающегося списка записывается значение в текстовое поле ввода.Вот функция carChange
, которая обрабатывает это.
function carChange() {
var ddlText = ("#Cars").data("kendoDropDownList");
var name = $('#CarName');
name.val(ddlText.value());
Значение устанавливается, однако, когда я отправляю форму своему контроллеру и устанавливаю точку останова, поле CarName
равно null
.Итак, я вижу значение, измененное в форме, но контроллеру присваивается нулевое значение, поскольку ничего не публикуется.
Если я вручную ввожу данные на вход CarName
, данные передаются на контроллер безлюбые проблемы.
У меня никогда не было этого прежде, поэтому, если кто-то может пролить что-то подобное, это будет огромной помощью, возможно, мой метод изменения значений устарел, или я не уверен.