繁体   English   中英

ASP.Net MVC DropList值绑定到错误的属性

[英]ASP.Net MVC DropList value binding to wrong property

我有一个具有两个属性的模型,一个字符串setID和一个字符串woID列表。 集合是workOrders的集合。 当我在控制台中检查仅分配setID时,我正在努力获取下拉列表的选定值以绑定到woId

$("#SetDDL :selected").val();
"TC2010-TEST-2017-OS"
$("#SetDDL :selected").text();
"TC2010-TEST-2017-OS" 

我的模特看起来像

public class SetWoDropDownModel
{
    public string setId { get; set; }
    public List<string> woId { get; set; }
}

这是视图的下拉部分

@model IEnumerable<Tiamat.WebUI.Areas.ParksRMSetAutomation.Models.SetWoDropDownModel>
@{
ViewBag.Title = "Parks Routine Maintenance Sets Automation";
Layout = "~/Views/Shared/_Layout.cshtml";
}

@Html.DropDownList("SetId",
    new SelectList(Model.Select(i => i.setId).Distinct().ToList(), Model.Select(i => i.woId).Distinct().ToList()),"Select Set ID",
    new {@class = "input-large form-control", @id = "SetDDL", @onchange = "setDropDownChange(this.value)"}
    )

setDropDownChange所做的所有事情都是切换按钮的可见性

function setDropDownChange(val) {
if (val !== "") {
$('#btnSubmit').attr('style', 'visibility: visible');
} else {
$('#btnSubmit').attr('style', 'visibility: hidden');
}

有人可以指出我正确的方向吗?

假设您的模型每个setId都有一个woId项目列表。

var Model = new[]
{
    new { setId = "TC2010-TEST-2017-OS", woId = new[] { "W01", "W05", "W07"}},
    new { setId = "TC2011-TEST-2017-OS", woId = new[] { "W02", "W10" }}        
};

然后,您可以将这些项目分组。

var itemList = from item in Model
    group item.woId by item.setId into g
    select new { setId = g.Key, woId = string.Join(",", g.SelectMany(v=>v).ToArray())}; 

并将列表传递给助手。

@Html.DropDownList("SetId",
    new SelectList(itemList, "woId", "setId", null), "Select Set ID",
    new {@class = "input-large form-control", id = "SetDDL",
         onchange = "setDropDownChange(this.value)"
})

结果HTML看起来像这样。

<select class="input-large form-control" id="SetDDL" name="SetId"
    onchange="setDropDownChange(this.value)">
    <option value="">Select Set ID</option>
    <option value="W01,W05,W07">TC2010-TEST-2017-OS</option>
    <option value="W02,W10">TC2011-TEST-2017-OS</option>
</select>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM