Asp.net mvc 3 如何在mvc3中设置Dropdownlist选择值
我有一个与TempData绑定的dropdownlist。当它第一次出现时,它会显示所有值。选择特定值后,该值会正确地保存在数据库中。但所选值不会显示。我在下面给出我的代码 为了检索,我在索引操作控制器中编写了Asp.net mvc 3 如何在mvc3中设置Dropdownlist选择值,asp.net-mvc-3,Asp.net Mvc 3,我有一个与TempData绑定的dropdownlist。当它第一次出现时,它会显示所有值。选择特定值后,该值会正确地保存在数据库中。但所选值不会显示。我在下面给出我的代码 为了检索,我在索引操作控制器中编写了 TempData["Clients"] = (IEnumerable<SelectListItem>)ClientService.GetALLClientsName().Select(C=>new SelectListItem { Value=C.CLIENT_ID.T
TempData["Clients"] = (IEnumerable<SelectListItem>)ClientService.GetALLClientsName().Select(C=>new SelectListItem { Value=C.CLIENT_ID.ToString(),Text=C.CLIENT_NAME});
我已经在lstClients中转换了TempData[“Clients”],请帮助我。您可以在controller.ie中的model中设置它,当您创建TempData[“Clients”] 将所需的selectlistitem设置为选中项
public ActionResult Index(){
var selectedClientId = 5; // for example (change it with your variable)
ViewBag.Clients = new SelectList(ClientService.GetALLClientsName(),
"CLIENT_ID", "CLIENT_NAME", selectedClientId)
}
视图:
TempData
有不同的用法。它的行为类似于会话,但它只在下一个请求中生存。它在重定向和传递数据时非常有用。请参阅以更好地理解差异。您应该使用DropDownListFor和ViewModel包含客户端ID字段:
YourViewModel:
public class YourViewModel{
public int ClientId {get;set;}
}
视图:
在Clients.cs中(例如):
publicstaticlist GetClientsList(int-client)
{
var dataContext=newyourdatacontext();
var data=dataContext.GetModelsFn(client.ToList();
var结果=(来自数据中的res)
选择新的SelectListItem()
{
Text=res.ClientName,
Value=res.ClientId.ToString(),
Selected=res.ClientId==client
})。ToList();
返回结果;
}
您不能将下拉数据保存在TempData中。使用ViewBag或ViewData代替标题我不能使用dropdownlistfor。@阿弥陀佛我不知道他在控制器中的代码,这是如何正确操作的示例。他会将我的硬编码值更改为他自己的变量值。我写了评论“例如”来说明这一点:)
@Html.DropDownList("drpClientName", (SelectList)ViewBag.Clients, "--Select--")
public class YourViewModel{
public int ClientId {get;set;}
}
@Html.DropDownListFor( x => x.ClientId, new SelectList( Clients.GetClientsList(Model.ClientId), "Value", "Text", Model.ClientId))
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;
}