我有以下视图。这是我的观点的整个代码
<asp:Content ID="Content2" ContentPlaceHolderID="HeadContent" runat="server">
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
</asp:Content>
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
<div>
<table>
<tr>
<td>
<select id="clientDDL">
</select>
<% Html.DropDownList("clientDDL",
new SelectList((IEnumerable)ViewData["Clients"], "Code", "Name")); %>
</td>
</tr>
</table>
</div>
</asp:Content>
我使用模型中的下一个ViewData:
public static List<lookup> GetClients()
{
using (ModelDataContext data = new ModelDataContext(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ToString()))
{
List<lookup> retVal = new List<lookup>();
List<Client> lClient = data.Clients.Where(a => a.IsActive == true).ToList();
lClient = lClient.OrderBy(o => o.ClientName).ToList();
foreach (Client item in lClient)
{
retVal.Add(new lookup() { Code = item.ClientID.ToString(), Name = item.ClientName, });
}
return retVal;
}
}
这是我的控制器:
public ActionResult ProcedureFilter()
{
ViewData["Clients"] = WorkflowModels.GetClients();
return View();
}
我错过了什么?我的DropDownList仍然是空的。也许我要提一些参考?请提出任何建议。
更新: 问题是';'在部分结尾&lt;%=%&gt;。作品代码:
<%= Html.DropDownList("clientDDL",
new SelectList((IEnumerable)ViewData["Clients"], "Code", "Name")) %>
答案 0 :(得分:2)
在您提供的ASP.NET代码中,使用相同的select
(cliendDDL)定义了2个HTML id
标记(或DropdownLists):
<select id="clientDDL"> <-- the first one
</select>
<% Html.DropDownList("clientDDL",
new SelectList((IEnumerable)ViewData["Clients"], "Code", "Name")); %> <-- the second one, Html.DropDownList generating a select under the hood.
是否可能只显示第一个(空的)和第二个因缺少字符而隐藏,将预期的HTML生成例程(Html.DropDownList
)更改为Embedded Code Block ?
也许代替:
<% Html.DropDownList
它应该是:
<%= Html.DropDownList or <%: Html.DropDownList
请参阅here了解&lt;%:%&gt; ASP.NET 4语法
<强>被修改强>
也是“;”不需要行尾字符,应删除。
答案 1 :(得分:0)
查看页面 “&lt;%= Html.DropDownList(”描述“,新选择列表(ViewData(”描述“)),” - 选择 - “)%&gt;”
<强>位指示:强>
功能购买()作为ActionResult:
Dim dataContext As New tblMVCDataContext
Dim teststr As String
Dim itemVar = From U In dataContext.Items Select U.Description
For Each tbItem In itemVar
teststr += tbItem + ","
Next
ViewData("Description") = teststr.Split(",")
Return View(itemVar)
End Function