我正在尝试在没有数据库的情况下将项添加到DropDownList中。 但输出只显示"测试..."
我的模特课。
public class DropDownListData
{
public DropDownListData()
{
City = new List<SelectListItem> { };
}
public List<SelectListItem> City;
}
控制器
public ActionResult Travel()
{
DropDownListData ddld = new DropDownListData();
ddld.City = new List<SelectListItem>
{
new SelectListItem {Value = "Paris" ,Text = "Paris"},
new SelectListItem {Value = "Moscow",Text = "Moscow"},
new SelectListItem {Value = "Yerevan" ,Text = "Yerevan" }
};
return View(ddld);
}
查看
@model ASP.NET.Test.Models.DropDownListData
@{
Layout = null;
}
Testing...
@{
Html.DropDownList("series", Model.City, "Choose City");
}
为什么我没有看到DropDownList。我做错了什么?
答案 0 :(得分:2)
使用以下代码按预期直接输出DropDownList:
@Html.DropDownList("series", Model.City, "Choose City");
您当前的使用情况通常会作为&#34;代码块&#34;如以下示例所示:
@{
// This code will be executed and can be used to set variables, etc.
var answer = 42;
}
<!-- This is an example of outputting your value -->
<p>
The answer to the question is <b>@answer</b>.
</p>
因此,您当前的代码只会调用Html.DropDownList()
方法,但实际上永远不会使用或输出它。但是,在@
字符前加上它会将其视为表达式并相应地输出。
答案 1 :(得分:1)
你必须使用:
@Html.DropDownList("series", Model.City, "Choose City")
而不是:
@{
Html.DropDownList("series", Model.City, "Choose City");
}
你所做的只是调用DropDownList函数,对返回的MvcHtmlString
什么都不做。 ReSharper实际上给了我一个不使用返回值的警告。