您好 StackOverFlow 同事,我有以下问题,在选择或下拉列表中选择选项时,如何加载或为输入赋值。
我的创建控制器如下:
// GET: Collaborators/Create
public ActionResult Create()
{
var lideres = (from p in db.Collaborators
where p.grupo_lider == "SI"
select p).ToList();
ViewBag.lideres = lideres.Select(p => new SelectListItem() { Value = p.nombres, Text = p.nombres }).ToList();
ViewBag.CompanyID = new SelectList(db.Companies, "CompanyID", "compania");
return View();
}
我的部分观点:
<div class="form-group">
@Html.LabelFor(model => model.lider, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownListFor(model => model.lider, (List<SelectListItem>)ViewBag.lideres, "Selleccione un líder", new{ @class = "form-control" })
@Html.ValidationMessageFor(model => model.lider, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.cargo_lider, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.cargo_lider, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.cargo_lider, "", new { @class = "text-danger" })
</div>
</div>
我的模型的一部分与我的问题最相关的部分:
[Display(Name = "Lider")]
public string lider { get; set; }
[Display(Name = "Cargo Lider")]
public string cargo_lider { get; set; }
[Display(Name = "Cargo")]
public string cargo { get; set; }
我确切地解释了我需要什么,目前我作为模型的下拉列表model.lider
显示了控制器中 group_leader 等于的用户的名称"SI"
显示了我所做的查询,我现在需要的是input @Html.EditorFor(model => model.cargo_lider, new { htmlAttributes = new { @class = "form-control" } })
根据位置加载在下拉列表中选择的名称或用户,考虑到此数据位于cargo
db.collaborators 列中,我需要将其加载到带有modelo.cargo_lider
.
我会继续关注问题、答案和其他问题。
当前的 Ajax 代码:
$('#iddropdownlist').change(function () {
var url = "/Collaborators/BuscarCargoLider?claveLider=" + $('#iddropdownlist option:selected').val();
$.ajax({
url: url,
type: 'GET',
dataType: 'json',
contentType: 'application/json; charset=utf-8',
async: true,
success: function (result) {
var lider;
if (result != null && result.length > 0) {
lider= JSON.parse(result);
}
if (lider!= null ) {
$('#idinput').val(lider);//cargo debe ser la propiedad de la clase lider donde se almacena el cargo del lider
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("error al consultar datos del lider");
}
});
});
控制器:
[HttpGet]
public JsonResult BuscarCargoLider(string claveLider)
{
try
{
var lider = (from p in db.Collaborators
where p.nombres == claveLider
select p.cargo).ToList();
return Json(lider, JsonRequestBehavior.AllowGet);
}
catch (Exception)
{
}
return Json("", JsonRequestBehavior.AllowGet);
}
在控制器中:
鉴于:
在视图中:
将 id 放入下拉列表并输入