C# 如何将其他数据绑定到Telerik剑道下拉列表

C# 如何将其他数据绑定到Telerik剑道下拉列表,c#,model-view-controller,razor,kendo-ui,telerik,C#,Model View Controller,Razor,Kendo Ui,Telerik,我有剑道下拉列表。它以位置名称作为文本,位置ID作为值进行设置。但是,我还有第三个字段需要绑定到模型(或者至少以某种方式返回到我的控制器)。有没有办法绑定其他数据?我见过几个地方,通过模板可以在下拉框中显示附加数据,但我找不到任何将附加值传递回控制器的示例 下拉框使用的模型具有以下字段: origLocationName 原声带 客户ID 当前,origLocationName是下拉列表中显示的文本值,origLocationID是绑定到模型并传递给控制器的值。我想要的是,当用户从下拉框中选

我有剑道下拉列表。它以位置名称作为文本,位置ID作为值进行设置。但是,我还有第三个字段需要绑定到模型(或者至少以某种方式返回到我的控制器)。有没有办法绑定其他数据?我见过几个地方,通过模板可以在下拉框中显示附加数据,但我找不到任何将附加值传递回控制器的示例

下拉框使用的模型具有以下字段:

  • origLocationName
  • 原声带
  • 客户ID
当前,origLocationName是下拉列表中显示的文本值,origLocationID是绑定到模型并传递给控制器的值。我想要的是,当用户从下拉框中选择时,能够绑定customerID和origLocationID

这是我的下拉框:

                    @(Html.Kendo().DropDownListFor(m => m.ddLocation)
                        .Name("ddLocation")
                        .HtmlAttributes(new { style = "width: 500px;", onchange = "onChange_ddLocation(this)" })
                        .OptionLabel("Select from List")
                        .DataTextField("origLocationName")
                        .DataValueField("origLocationID")
                        .BindTo(Model.locations)
                )
当用户选择位置时,我可以访问控制器中的origLocationID,如下所示:

        [HttpPost]
    public ActionResult CustomerDashboard(ModelCustomerDashboard model)
    {
        ...

        dash.ddLocation = model.ddLocation;

    ...

        return View(dash);
    }
我如何将该位置的客户编号与其位置ID一起传递

几张便条。(1.)我不能只传递一个ID,然后查找位置和客户ID。每个位置都有多个客户。因此,位置ID 123可能位于ABC公司和DEF公司。我没有设计这个,不能对数据库进行更改;只是在用我所拥有的。(2.)我考虑将客户ID和位置ID合并到一个字段中,类似这样:“CustID:ABC;LocationID:123”。然后我可以解析ddLocation并得到这两个值。我不希望这样做,因为有些地方不需要客户ID(有些用户只能看到一个客户),所以目前在ddLocation中只包含位置ID的设置对他们有效。我不想重写我已经为那个例子所做的一切

例如:

Dropdown Box
-------------
Visible Text     ddLocation     ddCustomer
Warehouse 1      123            ABC
Warehouse 2      456            ABC
Studio A         123            DEF

User selects the first item.

Controller
----------
model.ddLocation = '123'
model.ddCustomer = 'ABC'
编辑1:

下面是更改下拉框时调用的jquery:

    function onChange_ddLocation(arg) {
    try {
        $("#dropDownSource").val("Location");
        document.forms[0].submit();
    }
    catch (ex) {
        alert(ex.message);
    }
}

在模型CustomerDashboard中添加新属性,例如customerOrigLocationID,它将是customerID和origLocationID与一些分隔符的组合,如“-”或“;”(连字符或分号)。 将此CustomerRigLocationId作为DataValueField绑定到下拉列表。
在后端,您可以使用分隔符将其拆分并获得值。

在模型CustomerDashboard中添加新属性,例如customerOrigLocationID,它将是customerID和origLocationID与一些分隔符的组合,如“-”或“;”(连字符或分号)。 将此CustomerRigLocationId作为DataValueField绑定到下拉列表。
在后端,您可以使用Separator将其拆分并获得值。

如何将其发回(或Ajax)到CustomerDashboard?你能发布客户端代码吗?谢谢你的回复。当下拉列表更改时,我会执行一个简单的表单提交。我编辑了我的问题以包含代码。如果您对我有任何建议,请告诉我。您可以发布前端代码的其余部分吗?您如何将其发回(或Ajax)到CustomerDashboard?你能发布客户端代码吗?谢谢你的回复。当下拉列表更改时,我会执行一个简单的表单提交。我编辑了我的问题以包含代码。如果你对我有任何建议,请告诉我。你可以发布前端代码的其余部分吗?