如何使用dropdownlistfor设置所选值 [英] How do I set the selected value using dropdownlistfor

查看:104
本文介绍了如何使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆