如何设置在下拉列表MVC3选定值(How to set Dropdownlist selected

2019-11-02 05:18发布

我有一个下拉列表,其与TempData.when结合它是未来第一次它显示所有values.After选择该值在数据库中保存一个特定值correctly.But选定值不showing.I我下面给我的代码。

对于检索我已经写在指数动作控制器

TempData["Clients"] = (IEnumerable<SelectListItem>)ClientService.GetALLClientsName().Select(C=>new SelectListItem { Value=C.CLIENT_ID.ToString(),Text=C.CLIENT_NAME});

编辑后检索时,无法获得所选择的value.I已经写在剃刀这样的下面

@if (TempData["SelectedClientName"] != null && TempData["SelectedClientId"] != null)
                       {
                           foreach (SelectListItem sli in lstClients)
                           {
                               if (sli.Value.Equals(TempData["SelectedClientId"].ToString()))
                               {
                                   sli.Text = TempData["SelectedClientName"].ToString();
                                   sli.Value = TempData["SelectedClientId"].ToString();
                                   sli.Selected = true;
                                   break;    

                               }
                           }

                       }

                      @Html.DropDownList("drpClientName", lstClients, "--Select--")

我已经转换的TempData [“客户”在lstClients.Please帮助我。

Answer 1:

您应该使用DropDownListFor和视图模型包含客户端Id字段:

YourViewModel:

public class YourViewModel{
    public int ClientId {get;set;}
}

视图:

@Html.DropDownListFor( x => x.ClientId, new SelectList( Clients.GetClientsList(Model.ClientId), "Value", "Text", Model.ClientId))

在Clients.cs(如):

public static List<SelectListItem> GetClientsList(int client)
{
    var dataContext = new YourDataContext(  );
    var data = dataContext.GetModelsFn(client).ToList();

    var result = ( from res in data
               select new SelectListItem()
                          {
                              Text = res.ClientName,
                              Value = res.ClientId.ToString(),
                              Selected = res.ClientId == client
                          } ).ToList();

    return result;
}


Answer 2:

public ActionResult Index(){
    var selectedClientId = 5; // for example (change it with your variable)
    ViewBag.Clients = new SelectList(ClientService.GetALLClientsName(), 
                              "CLIENT_ID", "CLIENT_NAME", selectedClientId)
}

视图:

@Html.DropDownList("drpClientName", (SelectList)ViewBag.Clients, "--Select--")

TempData有不同的用法。 它的行为就像是Session ,但只存活下一个请求。 重定向并希望传递数据时,这是非常有用。 请参阅此链接 ,以便更好地理解上的差异。



Answer 3:

您可以在您创建的TempData设置在controller.ie模型[“客户”]

设置要与所选的selectlistitem。



文章来源: How to set Dropdownlist selected value in mvc3