2

尝试创建一个选择列表,其中第一个选项文本设置为空字符串。作为数据源,我有一个具有属性“Key”和“Value”的 GenericKeyValue 类的列表。我当前的代码如下。

                <%= this.Select(x => x.State).Options(ViewData[Constants.StateCountry.STATES] as IList<GenericKeyValue>, "Value", "Key").Selected(Model.State) %>

这会用状态填充选择列表,但是我不确定此时是否有一种优雅的方式来获取空字符串的第一个选项文本。

4

4 回答 4

2

“尝试创建一个选择列表,其中第一个选项文本设置为空字符串。” 标准方式不流畅,但感觉工作量更少:

ViewData[Constants.StateCountry.STATES] = SelectList(myList, "Key", "Value");

在控制器和视图中:

<%= Html.DropDownList(Constants.StateCountry.STATES, "")%>
于 2009-07-16T19:33:22.587 回答
1

当然可以,但是您将其添加到绑定到下拉列表的列表中...

List<State> list = _coreSqlRep.GetStateCollection().OrderBy(x => x.StateName).ToList();
list.Insert(0, new State { Code = "Select", Id = 0 });
ViewData["States"] = new SelectList(list, "Id", "StateName", index);
于 2009-09-24T23:41:15.717 回答
0

或这个...

你的看法;

<%=Html.DropDownList("selectedState", Model.States)%>

您的控制器;

public class MyFormViewModel
{
    public SelectList States;
}

public ActionResult Index()
{
   MyFormViewModel fvm = new MyFormViewModel();
   fvm.States = new SelectList(Enumerations.EnumToList<Enumerations.AustralianStates>(), "Value", "Key", "vic");

   return(fvm);
}
于 2009-07-17T05:21:31.310 回答
0

不扩展任何东西 - 你不能。

这是作者所说的:

最后一点。MvcFluentHtml 的目标是将意见留给您。我们通过允许您定义自己的行为来做到这一点。然而,它并非没有关于实践的意见。例如,Select 对象没有任何“第一选项”功能。那是因为在我看来,为选择添加选项不是视图问题。

编辑:
另一方面 - 在最新的源代码中有 Select 的 'FirstOption' 方法。
通过 svn 下载 MvcContrib,构建并使用。

于 2009-08-03T07:43:33.670 回答