C# mvc 5下拉列表多重查找值
因此,我有一个页面,在其中输入员工详细信息,并选择一个员工表单下拉列表,该列表将向其报告。My table Employees可以有诸如EmpGuid、EmpName、EmpParentGuid、Department、Age等字段,所以基本上EmpParentGuid是EmpGuid向其报告的主管 下面是dropdownlist的代码 控制器代码C# mvc 5下拉列表多重查找值,c#,asp.net-mvc,drop-down-menu,C#,Asp.net Mvc,Drop Down Menu,因此,我有一个页面,在其中输入员工详细信息,并选择一个员工表单下拉列表,该列表将向其报告。My table Employees可以有诸如EmpGuid、EmpName、EmpParentGuid、Department、Age等字段,所以基本上EmpParentGuid是EmpGuid向其报告的主管 下面是dropdownlist的代码 控制器代码 ViewBag.EmpParentGuid = new SelectList(db.Employees.ToList(), "EmpGuid ", "
ViewBag.EmpParentGuid = new SelectList(db.Employees.ToList(), "EmpGuid ", "EmpName", Employees.EmpParentGuid );
视图代码
@Html.DropDownList("EmpParentGuid", null, htmlAttributes: new { @class = "form-control" })
因此,基于选定的EmpParentGuid,我可以得到它的EmpName值。现在,我如何获得其他字段值,并可能显示在DropdownList旁边的标签中。
还有,我怎样才能得到同样的职位。因为我想根据选定的EmpParentGuid更新几个隐藏字段。谢谢
谢谢。HTML页面:
@Html.ListBox("EmpParentGuid", null, htmlAttributes: new { id = "ElementID", @class = "form-control" })
为更改事件添加脚本:
$(document).ready(function () {
$("#ElementID").change(function () {
var Id = $("#ElementID").val();
$("#IdOfPartialViewHolder").load('@(Url.Action("ActionName", "Controller", null, Request.Url.Scheme))?EmpParentGuid=' + Id);
});
});
部分视图的HTML:
<div id="IdOfPartialViewHolder" class="h6 ">
@Html.Partial("_YourPartialView", Model)
</div>
您需要使用javascript/jquery来处理dropdownlist的.change事件,并使用ajax调用传递所选值的服务器方法,返回附加细节并更新DOMoh!。。。。所以,传递整个列表并获得选定行值并不是一个简单的方法:谢谢@StephenMuecke。如果我不需要在标签中显示,怎么样。但在发布整个页面时获取值。提交时,您知道所选员工的属性值为EmpParentGuid-但您的模型中是否确实有名为EmpParentGuid的属性?因此,您只需查找数据库即可获得所选员工的所有属性。你真的需要停止使用DropDownList,开始使用视图模型和强类型DropDownListFor方法。再次感谢@StephenMuecke。是的,我的模型中有EmpParentGuid,因为它是表列的一部分。我将根据您的建议在数据库中查找。如果您对ajax有问题,请添加以下内容:$document.readyfunction{$.ajaxSetup{cache:false};};
@model YourProject.Models.EmployeesViewModel
<div>
Text1:   @Html.DisplayFor(model => model.YourModelColumn1) <br />
Text2:   @Html.DisplayFor(model => model.YourModelColumn2)
... YourModelColumn5
</div>
public async Task<ActionResult> ActionName(string EmpParentGuid)
{
Guid IDtemp = new Guid(EmpParentGuid);
EmployeesViewModel model = new EmployeesViewModel();
Employees E = new Employees();
E = await db.Employees .FindAsync(IDtemp);
model.YourModelColumn1 = E.YourModelColumn1;
model.YourModelColumn2 = E.YourModelColumn2;
return PartialView("_YourPartialView", model);
}
@using (Html.BeginForm(null, null, FormMethod.Post, new { enctype = "multipart/form-data" }))
{
YOUR HTML
}