C# 基于下拉选择MVC显示值

C# 基于下拉选择MVC显示值,c#,.net,asp.net-mvc,asp.net-mvc-4,C#,.net,Asp.net Mvc,Asp.net Mvc 4,我有一个要求,我需要根据下拉选择显示详细信息。这些细节来自数据库。当我单击一个用户all时,必须显示属于该用户的所有详细信息 模型类 public class TaskDetails { public string ProjectID { get; set; } public string ProjectName { get; set; } public DateTime StartDate { get; set; } public DateTime Estima

我有一个要求,我需要根据下拉选择显示详细信息。这些细节来自数据库。当我单击一个用户all时,必须显示属于该用户的所有详细信息

模型类

public class TaskDetails
{
    public string ProjectID { get; set; }
    public string ProjectName { get; set; }
    public DateTime StartDate { get; set; }
    public DateTime EstimatedDate { get; set; }
    public string TaskDescription { get; set; }
}
控制器

List<SelectListItem> query = DE.tblEmployees.Select(c => new SelectListItem 
                            { Text = c.Name, Value = c.Name }).ToList();
ViewBag.Categories = query;
return View();
List query=DE.tblEmployees.Select(c=>newselectListItem
{Text=c.Name,Value=c.Name}).ToList();
ViewBag.Categories=查询;
返回视图();
查看

<div class="dropdown">
     @Html.DropDownList("CategoryID", (List<SelectListItem>)ViewBag.Categories, "--User Name--")
</div>

@Html.DropDownList(“CategoryID”,(List)ViewBag.Categories,“--用户名--”)
在视图中,我正在加载下拉列表中的所有用户值。但是,当管理员选择任何一个用户时,用户的所有详细信息都必须显示在表下。到目前为止,我是完美的,但从这里开始,我被折磨了。如何前进如何根据下拉选择显示用户的详细信息。

步骤

  • 创建一个视图,可以在其中显示特定用户的所有详细信息

  • 在用户更改时进行Ajax调用,并通过控制器的部分视图从该使用中获取特定的用户详细信息

  • 然后将html结果附加到html中

  • 就像这里一样

    下拉式Html

     <div class="dropdown">
            @Html.DropDownList("CategoryID", (List<SelectListItem>)ViewBag.Categories, "--User Name--")
        </div>
    
    控制器

    public PartialViewResult GetUser(int id /* drop down value */)
    {
        var model = db.Users.find(id); // This is for example put your code to fetch record.   
        return PartialView("MyPartialView", model);
    }
    

    创建一个局部视图,它基本上是为用户详细信息绑定数据。例如,您创建了一个名为userDetails.cshtml的局部视图

    在局部视图中添加模型引用,如下图所示

    @为您的项目建模\u Name.ModalFolderName.TaskDetails

    您需要在details部分视图中编写html代码来绑定数据

    假设您的主视图中有一个div,其中包含id=“mydetailsTable”,您希望在下拉选择后加载用户详细信息数据

    然后在下拉更改事件中调用一个ajax方法,获取数据并将其加载到mydetailsTablediv中。检查我下面的代码

    $(".myDropdown").change(function() { 
     var id = $(this).val(); 
     $.ajax({
     type: 'GET',
     url: '/ControllerName/GetUserDetails/'+id,
     contentType: 'application/html; charset=utf-8',
     datatype: 'html',
     success: function (data) {
       $('#mydetailsTable').html('');
       $('#mydetailsTable').html(data);
      })
    });
    
    请看,.myDropdown是我的下拉列表类。你需要补充

    你的行动方法是这样的

    public ActionResult GetUserDetails(int userId)
    {
     //fetch the data by userId and assign in a variable, for ex: myUser
     return PartialView("userDetails",myUser);
    }
    

    就这样。希望有帮助:)

    您想在同一页还是在另一页中显示用户的详细信息?仅在同一页。然后您需要为详细信息数据创建部分视图。并在DropdownChange事件中调用ajax方法,在部分视图中获取数据和加载;这是什么用户..?例如,
    db
    is you datacontaxt
    users
    是表实体,
    find
    是从表主键查找记录的linq方法。
    public ActionResult GetUserDetails(int userId)
    {
     //fetch the data by userId and assign in a variable, for ex: myUser
     return PartialView("userDetails",myUser);
    }