Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.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# DropDownList不显示当前值MVC_C#_Asp.net Mvc_Html.dropdownlistfor - Fatal编程技术网

C# DropDownList不显示当前值MVC

C# DropDownList不显示当前值MVC,c#,asp.net-mvc,html.dropdownlistfor,C#,Asp.net Mvc,Html.dropdownlistfor,我有一个下拉列表,但无法在视图中显示当前状态: 我的html: <div class="form-group"> @Html.LabelFor(model => parts.Status, new { @class = "col-md-4" }) //This shows the status as "New - Dispatch" @Html.TextBoxFor(model => parts.Status, new { @class = "

我有一个下拉列表,但无法在视图中显示当前状态:

我的html:

<div class="form-group">
    @Html.LabelFor(model => parts.Status, new { @class = "col-md-4" })

     //This shows the status as "New - Dispatch"
    @Html.TextBoxFor(model => parts.Status, new { @class = "col-md-8 required-color" })

     //This shows as empty , but i want it to show as New - Dispatch
    @Html.DropDownListFor(model => parts.Status, parts.StatusList, String.Empty, new { @class = "col-md-8 required-color" })
</div>
这是我的清单:

public List<SelectListItem> GetStatusList(string PartRequestStatus)
{
    List<SelectListItem> list = new System.Collections.Generic.List<SelectListItem>();
    list.Add(new SelectListItem() { Text = "New - Dispatch", Value = "New - Dispatch"});
    list.Add(new SelectListItem() { Text = "Exception - Warehouse", Value = "Exception - Warehouse"});
    list.Add(new SelectListItem() { Text = "HP Claim", Value = "HP Claim" });

    return list;
}
public List GetStatusList(字符串PartRequestStatus)
{
List List=new System.Collections.Generic.List();
添加(new-SelectListItem(){Text=“new-Dispatch”,Value=“new-Dispatch”});
添加(新建SelectListItem(){Text=“Exception-Warehouse”,Value=“Exception-Warehouse”});
添加(新建SelectListItem(){Text=“HP索赔”,Value=“HP索赔”});
退货清单;
}

我想在视图中显示当前状态,它在
文本框中为
,而不是在
下拉列表中为

您需要返回一个
选择列表
而不是通用的
列表()。通过返回此类列表,您有机会设置所选项目的值。像这样:

public List<SelectListItem> GetStatusList(string PartRequestStatus)
{
    list.Add(new SelectListItem() { Text = "New - Dispatch", Value = "New - Dispatch", Selected = false });
    list.Add(new SelectListItem() { Text = "Exception - Warehouse", Value = "Exception - Warehouse", Selected = false });
    list.Add(new SelectListItem() { Text = "HP Claim", Value = "HP Claim", Selected = false });   
}
设置此属性后,如果要为下拉列表使用自定义模板,请确保
Status
的视图模型属性具有以下属性:

[UIHint("string-name-of-editor-template")]

SelectListItem
中删除
Selected=false
(通过使用
Selected=false
,您明确表示不希望选择其中任何一项):

public List GetStatusList(字符串PartRequestStatus)
{
List List=new System.Collections.Generic.List();
添加(new-SelectListItem(){Text=“new-Dispatch”,Value=“new-Dispatch”});
添加(新建SelectListItem(){Text=“Exception-Warehouse”,Value=“Exception-Warehouse”});
添加(新建SelectListItem(){Text=“HP索赔”,Value=“HP索赔”});
退货清单;
}

一个愚蠢的假设。可能是因为Selected=false?您是否也可以发布将模型传递到视图的控制器操作?StatusList=\u partsRequestHServices.GetStatusList(parts.PartRequestStatus)它用于文本框,而不是用于视图的dropdownlist代码似乎表明您正在循环中使用它。如果是这样,您需要使用自定义的
编辑器或模板
,并将
选择列表
作为附加视图数据传递。我去掉了Selected=false,但它仍然不显示值抱歉,我认为这行不通,我不明白的是,它适用于我的textboxfor,但不适用于DropDownListFor。而且我在我的MVC站点中使用了这段代码。相信我,它很有效,我正在用它。。。
var statuses = GetStatusList("??");
SelectList statusList = new SelectList(statuses , "Id", "Text", selectedValue);
ViewData["Statuses"] = statusList;
[UIHint("string-name-of-editor-template")]
public List<SelectListItem> GetStatusList(string PartRequestStatus)
{
    List<SelectListItem> list = new System.Collections.Generic.List<SelectListItem>();
    list.Add(new SelectListItem() { Text = "New - Dispatch", Value = "New - Dispatch" });
    list.Add(new SelectListItem() { Text = "Exception - Warehouse", Value = "Exception - Warehouse" });
    list.Add(new SelectListItem() { Text = "HP Claim", Value = "HP Claim" });

    return list;
}