You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Kendo ComboBox获取值并传递至Controller

如何将Kendo ComboBox选中值传递至ASP.NET Core Controller

一、修正前端代码

你当前的代码存在两处关键问题:一是同时存在kendo-combobox和同名input元素,会导致表单提交时参数冲突;二是combobox的name属性与ViewModel中的PShID不匹配,无法完成自动绑定。修正后的前端代码如下:

<div class="k-d-flex k-justify-content-center" style="padding-top: 54px;">
    <div class="k-w-300">
        <h4 style="text-align: center;">Customize your Projectship</h4>
        <label for="projectship">ProjectShip</label>
        <kendo-combobox id="combobox" 
                        datatextfield="Text" 
                        datavaluefield="Value" 
                        value="2" 
                        placeholder="Select ProjectShip..."
                        suggest="true" 
                        filter="FilterType.Contains" 
                        asp-for="PShID" 
                        style="width:100%;" 
                        bind-to="data">
        </kendo-combobox>
    </div>
</div>
</form>

关键调整说明:

  • 移除重复的input元素,避免参数冲突
  • 添加asp-for="PShID"属性,自动将combobox的name设置为与ViewModel属性一致的值,确保Model绑定生效
  • 保留datavaluefield="Value",保证提交的是选中项的Value值而非显示文本

二、确保ViewModel属性匹配

你的RegisterDischargeTonnageViewModel需包含PShID属性,且类型与ComboBox数据源中Value字段的类型一致(比如int或string):

public class RegisterDischargeTonnageViewModel
{
    // 类型需与ComboBox的Value字段类型匹配
    public int PShID { get; set; }
    // 其他业务属性...
}

三、Controller接收参数

你现有的Controller代码无需额外修改,只要前端绑定正确,ASP.NET Core的Model绑定机制会自动将ComboBox选中的Value值赋值给model.PShID:

[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> RegisterDischargeTonnage(RegisterDischargeTonnageViewModel model)
{
    if (ModelState.IsValid)
    { 
        await _projectship.RegisterDischargeTonnage(model);
        return RedirectToAction(nameof(Index));
    }
    return View(model);
}

额外验证要点

  • 检查ComboBox的数据源是否正确加载,确保Text和Value字段存在
  • 如果提交后model.PShID仍为空,可查看ModelState.IsValid的错误信息,排查类型不匹配或参数名称不一致问题

内容的提问来源于stack exchange,提问作者Hossein khakpour

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 09:05:22