我想創建一個下拉列表,但我正在努力如何顯示它。DropDownList MVC C#
我有以下代碼。
控制器
var trader = new DisplayTradersAttachedToCategoryViewModel
{
Description = data.Description,
Id = data.Id,
BusinessName = traders.Select(x => new BusinessNameViewModel { BusinessName = x.BusinessName, Id = x.Id }),
Categories = _service.GetCategories().Select(x => new DropDownViewModel {Id = x.Id, Description = x.Description }).OrderBy(x=>x.Description)
};
DisplayTradersAttachedToCategoryViewModel
public class DisplayTradersAttachedToCategoryViewModel
{
public int Id { get; set; }
public string Description { get; set; }
[UIHint("BusinessNameDisplayTemplate")]
public IEnumerable<BusinessNameViewModel> BusinessName { get; set; }
[UIHint("DropDownEditorTemplate")]
public IEnumerable<DropDownViewModel> Categories { get; set; }
}
DropDownViewModel
public class DropDownViewModel
{
public int Id { get; set; }
public string Description { get; set; }
}
DropDownEditorTemplate
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<Internal.ViewModels.Controller.DropDownViewModel>>" %>
<table class="aligncenter">
<tr class="tRow left"><%
if (Model != null)
{%>
<td>
<%=Html.DropDownList("Category", Model.)%>
</td><%
}%>
</tr>
</table>
我不知道我的意思,以DropDownList的範圍內提供,或者如果我實際上這樣做是正確的。
UPDATE
控制器
var trader = new DisplayTradersAttachedToCategoryViewModel
{
Description = data.Description,
Id = data.Id,
BusinessName = traders.Select(x => new BusinessNameViewModel { BusinessName = x.BusinessName, Id = x.Id }),
Categories = _service.GetCategories().Select(x => new SelectListItem() {Text = x.Description, Value = x.Id.ToString(), Selected = true})
};
DisplayTradersAttachedToCategoryViewModel
public int Id { get; set; }
public string Description { get; set; }
[UIHint("BusinessNameDisplayTemplate")]
public IEnumerable<BusinessNameViewModel> BusinessName { get; set; }
public IEnumerable<SelectListItem> Categories { get; set; }
public int Category { get; set; }
public string Button { get; set; }
DeleteCategoryAttachedToTraders.aspx
using (Html.BeginForm("DeleteCategoryFromTradersAttachNewCategory", "Controller",FormMethod.Post))
<%=Html.DropDownList("Categories")%>
控制器
[HttpPost]
public ActionResult DeleteCategoryFromTradersAttachNewCategory(DisplayTradersAttachedToCategoryViewModel displayTradersAttachedToCategoryViewModel)
{
if (displayTradersAttachedToCategoryViewModel.Button == "Back to List") return RedirectToAction("ViewCategories");
//Update traders with new category
//delete category
//if (_service.DeleteCategory((int)deleteCategoryViewModel.Id))
//{
// return RedirectToAction("ViewCategories");
//}
return View("DeleteCategoryAttachedToTraders", displayTradersAttachedToCategoryViewModel);
}
當我訪問通過提交按鈕沒有任何控制器存儲在DisplayTradersAttachedToCategoryViewModel內。我究竟做錯了什麼?
在此先感謝您的幫助。
克萊爾
謝謝你,這就像一種享受。 – ClareBear 2010-07-28 10:48:15
感謝您的接受...很快見到您:) – 2010-07-28 10:51:40
如何命名選擇列表?此時該值不會通過視圖模型返回。 – ClareBear 2010-07-28 13:56:11