c# - asp.net core mvc中的Kendo Ui无法获取DataValueField值
问题描述
我正在使用 kendo 多列下拉菜单,但我似乎无法从 DatValueField 中获取值,我正在使用该值来获取所选人员的 ID,以便能够将其存储在另一个表中。
如果有人可以告诉我如何在引导程序中复制相同的内容,请做 Telerik 不是我唯一的答案,宁愿避免它
<form asp-action="LinkToCase" method="post" asp-controller="MISObjects">
<div class="row">
<div class="col-md-12">
<div class="card card-success">
<div class="card-header" style="background-color:#1e3f5a;color:white">
<h3 class="card-title">Search and Tag</h3>
</div>
<div class="card-body">
<div class="col-md-12">
<div class="input-group">
<select id="searchOptions" name="searchOptions" style="background-color: #1e3f5a; color: white; width: 140px; height: 45px">
<option selected value="1">Poi</option>
<option selected value="1">Vessel</option>
</select>
@(Html.Kendo().MultiColumnComboBox()
.Name("tagItem")
.DataTextField("name")
.DataValueField("SearchId")
.Filter("contains")
.FilterFields(new string[] { "name", "ContactTitle", "CompanyName", "Country" })
.Columns(columns =>
{
columns.Add().Field("name").Title("Contact Name").Width("200px");
columns.Add().Field("dob").Title("Date Of Brith").Width("200px");
})
.FooterTemplate("Total #: instance.dataSource.total() # items found")
.HtmlAttributes(new { style = "width:80%;" })
.Height(400)
.DataSource(source => source
.Custom()
.Transport(transport => transport
.Read(read =>
{
read.Action("SearchQuery", "MISObjects")
.Data("onAdditionalData");
}))
)
)
<button type="submit" class="btn-primary" value="Link To Case" style=" background-color:#1e3f5a;color:white">Link To Case</button>
</div>
</div>
</div>
</form>
剑道组合框调用此函数。
[HttpPost]
public IActionResult LinkToCase(int SearchId,string updateInfo, int tagItem, string sesearchOptionsr, IFormCollection formItems) {
Int32.TryParse(TempData.Peek("CaseId").ToString(), out int resultCaseId);
var test = formItems;
POI newPoi = new POI();
newPoi = _context.Pois.SingleOrDefault(w => w.Id == SearchId);
newPoi.MISObjectId = resultCaseId;
_context.Pois.Add(newPoi);
_toast.AddSuccessToastMessage(
$"You have linked {newPoi.FirstName} {newPoi.LastName} to case {resultCaseId:d8}");
return RedirectToAction("Edit", new { id = resultCaseId });
}
private IEnumerable<SearchViewModel> GetSearchRecords() {
return _context.Pois.Where(w => w.isActive == true && w.isDeleted == false).Select(person =>
new SearchViewModel {
SearchId = person.Id,
Name = person.FirstName + " " + person.LastName,
DOB = person.DOB
}).ToList();
}
但是即使当我检查 SearchId 时,即使我将其设置为输入 int ,它也是空白的
编辑 2
正如您在下面看到的那样,在表单集合项中找不到该值。
解决方案
如果我正确阅读了您的代码,在我看来,您想要的 SearchId 值应该已经在您的控制器方法的 tagItem int 参数中,因为这是表单中 MultiColumnComboBox 的名称。该 MultiColumnComboBox 绑定到以 SearchId 作为值字段的列表,该字段不同,并且不会在提交时回发。
推荐阅读
- c - 如何使用 strtok?
- vue.js - Bootstrap Vue datepicker 道具最大值失败,预期字符串,日期,得到日期
- java - 将 WriteableImage 转换为 BufferedImage
- python - AttributeError:“str”对象没有属性“json”
- java - JDK 8 中使用的 TLS 版本
- javascript - Javascript获取对象数组中的最大对象
- r - 通过灵活的调用将具有不同宽度的数据从宽转向长(在循环中使用)
- python - 如何检查python环境是否稳定一致
- azure - 我们可以在不使用 Azure Active Directory 的情况下在 Azure 中配置 SSO(单点登录)吗?
- java - 尝试在开源 Conversations 应用程序上使用 gradle 运行 SonarScanner