如何使用dropdownlistfor设置所选值 [英] How do I set the selected value using dropdownlistfor
问题描述
大家好,
我有一个模型,应该使用下拉框更新其属性。我为它创建了一个viewmodel,以便在视图中享受模型绑定,但是当我启动编辑页面时,我之前选择的值没有显示。请传递哪些参数以确保在编辑页面启动时显示上一个选定项目。
请在下面查看我的视图模型,控制器和视图页面。
ViewModel
命名空间 ProAssure.ICMS.Web.Models.Severity
{
public class SeverityUpdateViewModel
{
public SelectList Criticality { set ; get ; }
public SeverityUpdateViewModel(SeverityUpdateDto severityUpdateDto)
{
List< SelectListItem> dummyList = new List< SelectListItem>();
foreach ( var availableCriticality in severityUpdateDto.Criticality)
{
var listItem = new SelectListItem()
{
Text = availableCriticality.ToString(),
Value = availableCriticality.ToString()
,Selected = availableCriticality.ToString()。Equals(severityUpdateDto.Selected。 ToString())
};
dummyList.Add(listItem);
}
此 .Criticality = new SelectList(dummyList, Text, Value,severityUpdateDto.Selected.ToString());
}
}
}
控制器
public async 任务< ActionResult>编辑( int ?id)
{
SeverityUpdateViewModel severityUpdateViewModel = new SeverityUpdateViewModel(严重性) );
return 查看(severityUpdateViewModel);
}
查看
< span class =code-keyword>< div class = form-group >
@ Html.LabelFor(model => model.Criticality,htmlAttributes:new {@class =control-label col-md-3})
< span class =code-keyword>< div class = col-md-9 >
@ Html.DropDownListFor(model => model.Criticality,Model.Criticality,new {htmlAttributes = new {@class =form-control}})
@ Html.ValidationMessageFor(model => model.Criticality,,new {@class =text-danger })
< / div > ;
< / div >
非常感谢
这是我使用DropDownListFor方法填充和选择下拉菜单的方式:
包含下拉列表在模型中列为属性
@ Html.DropDownListFor(model = > model.AvailabilityCriticalID,Model.AvailabilityCriticalityList)
模型内部:
public IEnumerable< SelectListItem> AvailabilityCriticalityList
{
get
{
IEnumerable< SelectListItem>结果=(来自 x GetAvailabilityCriticalityList()
select new SelectListItem(){Text = x.ToString(),Value = x.AvailabilityCriticalityID.ToString()});
return 结果;
}
}
下拉列表中项目的选择是自动的。
Hi All,
I have a model that one its properties should be updated using a drop-down box. I created a viewmodel for it so as to enjoy model-binding at the view but my previously selected value is not showing when I launch the edit page. Please what parameters do I pass to ensure the previous selected item shows when the edit page is launched.
Please find below my view model, controller and view page.
ViewModel
namespace ProAssure.ICMS.Web.Models.Severity
{
public class SeverityUpdateViewModel
{
public SelectList Criticality { set; get; }
public SeverityUpdateViewModel(SeverityUpdateDto severityUpdateDto)
{
List<SelectListItem> dummyList = new List<SelectListItem>();
foreach (var availableCriticality in severityUpdateDto.Criticality)
{
var listItem = new SelectListItem()
{
Text = availableCriticality.ToString(),
Value = availableCriticality.ToString()
, Selected = availableCriticality.ToString().Equals(severityUpdateDto.Selected.ToString())
};
dummyList.Add(listItem);
}
this.Criticality = new SelectList(dummyList, "Text", "Value", severityUpdateDto.Selected.ToString());
}
}
}
Controller
public async Task<ActionResult> Edit(int? id)
{
SeverityUpdateViewModel severityUpdateViewModel = new SeverityUpdateViewModel(severity);
return View(severityUpdateViewModel);
}
View
<div class="form-group">
@Html.LabelFor(model => model.Criticality, htmlAttributes: new { @class = "control-label col-md-3" })
<div class="col-md-9">
@Html.DropDownListFor(model => model.Criticality, Model.Criticality, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Criticality, "", new { @class = "text-danger" })
</div>
</div>
Thank you very much
This is the way I have used the DropDownListFor method to fill and select drop downs:
Include the drop down list in the model as a property
@Html.DropDownListFor(model => model.AvailabilityCriticalID, Model.AvailabilityCriticalityList)
Inside the model:
public IEnumerable<SelectListItem> AvailabilityCriticalityList { get { IEnumerable<SelectListItem> Results = (from x in GetAvailabilityCriticalityList() select new SelectListItem() { Text = x.ToString(), Value = x.AvailabilityCriticalityID.ToString() }); return Results; } }
The selection of the item in the drop down is automatic.
这篇关于如何使用dropdownlistfor设置所选值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!