Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# mvc 4下拉列表选择默认值_C#_Asp.net Mvc_Asp.net Mvc 4_Razor - Fatal编程技术网

C# mvc 4下拉列表选择默认值

C# mvc 4下拉列表选择默认值,c#,asp.net-mvc,asp.net-mvc-4,razor,C#,Asp.net Mvc,Asp.net Mvc 4,Razor,我想在policyId=7的下拉列表中选择默认值,但它没有选择该值,我做错了什么 控制器: var pm = new ManagerClass(); IEnumerable<myClass> po = pm.GetDataFromDb(); IEnumerable<SelectListItem> Policies = new SelectList(po, "PolicyID", "PolicyName", new { PolicyID = 7 }); ViewBag.Po

我想在policyId=7的下拉列表中选择默认值,但它没有选择该值,我做错了什么

控制器:

var pm = new ManagerClass();
IEnumerable<myClass> po = pm.GetDataFromDb();
IEnumerable<SelectListItem> Policies = new SelectList(po, "PolicyID", "PolicyName", new { PolicyID = 7 });
ViewBag.Policies = Policies;
var pm=newmanagerclass();
IEnumerable po=pm.GetDataFromDb();
IEnumerable Policies=new SelectList(po,“PolicyID”,“PolicyName”,new{PolicyID=7});
ViewBag.Policies=策略;
视图:

@Html.DropDownListFor(m=>m.PolicyID,ViewBag.Policies作为IEnumerable,新的{@class=“dropdown field”})

只需将视图模型上的
PolicyID
属性设置为要预选的值:

var pm = new ManagerClass();
var po = pm.GetDataFromDb();
ViewBag.Policies = new SelectList(po, "PolicyID", "PolicyName");

viewModel.PolicyID = 7;
return View(viewModel);

由于DropDownList绑定到
PolicyID
属性(
m=>m.PolicyID
),因此在决定预选哪个元素时将使用它的值。

这是因为它实际上没有选择
选择列表中的值

首先,为了更好,将项目放在视图模型中以防止强制转换(这也是更好的做法):

那么,在您看来,请执行以下操作:

@Html.DropDownListFor(m => m.PolicyID, Model.Policies, new { @class = "dropdown-field"})

如果您有一个静态菜单:

1-创建以下类:

public static class StaticMenus
{

    public static List<string> GetGridRowsCount()
    {
        List<string> result = new List<string>();
        result.Add("3");
        result.Add("5");
        result.Add("10");
        result.Add("20");
        result.Add("25");
        result.Add("50");
        result.Add("100");

        return result;
    }
}
3-将以下代码添加到视图中:

@Html.DropDownList("MainGridRowsCount", ViewData["RowsCountList"] as SelectList)

在“编辑”页面上,此功能正常,但在“添加”页面上,此功能无效。我给模型的id也在添加页面,就像你正在做的。我不知道你在说什么编辑和添加页面。这对我来说一直很有效。显示一个完整的示例,允许重现问题,这将有助于更好地理解您的场景。@DarinDimitrov我看到很多问题,当人们将
SelectList
放在
ViewBag
中时,它无法选择。不管是选角还是其他什么,但补救方法通常只是在视图模型中粘贴下拉列表。对不起,这是我的错误,我没有传递模型参数视图(“ViewName”,viewModel);我只是在使用这个视图(“视图名”)@Mattytommo我给你打分,你的回答也很有帮助。
@Html.DropDownListFor(m => m.PolicyID, Model.Policies, new { @class = "dropdown-field"})
public static class StaticMenus
{

    public static List<string> GetGridRowsCount()
    {
        List<string> result = new List<string>();
        result.Add("3");
        result.Add("5");
        result.Add("10");
        result.Add("20");
        result.Add("25");
        result.Add("50");
        result.Add("100");

        return result;
    }
}
ViewData["CountryList"] = new SelectList(StaticMenus.GetGridRowsCount(),"10");
@Html.DropDownList("MainGridRowsCount", ViewData["RowsCountList"] as SelectList)