Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# mvc 5下拉列表多重查找值_C#_Asp.net Mvc_Drop Down Menu - Fatal编程技术网

C# mvc 5下拉列表多重查找值

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 ", "

因此,我有一个页面,在其中输入员工详细信息,并选择一个员工表单下拉列表,该列表将向其报告。My table Employees可以有诸如EmpGuid、EmpName、EmpParentGuid、Department、Age等字段,所以基本上EmpParentGuid是EmpGuid向其报告的主管

下面是dropdownlist的代码

控制器代码

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: &nbsp @Html.DisplayFor(model => model.YourModelColumn1)    <br />
   Text2: &nbsp @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
}