【问题标题】:Kendo Ui in asp.net core mvc unable to get the DataValueField valueasp.net core mvc中的Kendo Ui无法获取DataValueField值
【发布时间】:2020-08-19 13:16:57
【问题描述】:

我正在使用 kendo 多列下拉菜单,但我似乎无法从 DatValueField 中获取值,我正在使用该值来获取所选人员的 id,以便能够将其存储在另一个表中。

如果有人可以告诉我如何在引导程序中复制相同的内容,请不要telerik不是我唯一的答案,而是避免它tbh

<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

正如您在下面看到的,在表单集合项中找不到该值。

【问题讨论】:

    标签: c# twitter-bootstrap asp.net-core model-view-controller kendo-ui


    【解决方案1】:

    如果我正确阅读了您的代码,在我看来,您想要的 SearchId 值应该已经在您的控制器方法的 tagItem int 参数中,因为这是表单中 MultiColumnComboBox 的名称。该 MultiColumnComboBox 绑定到以 SearchId 作为值字段的列表,这是不同的并且不会在提交时回发。

    【讨论】:

    • 你会这么认为,但它不是因为返回的是人名而不是 id
    • 您能否在控制器中包含您的 SearchQuery 代码,我也找到了这个线程,我知道它与您使用的控件不同,但行为似乎匹配:telerik.com/forums/combobox-saves-text-instead-of-value
    猜你喜欢
    • 2012-12-09
    • 2021-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多