我使用這部分代碼從我的數據庫中獲取信息,使用實體框架,並將其全部添加到IEnumerable屬性中,最後顯示DropDownListFor。 我需要多次使用這種代碼,所以我想使它成爲最強大的功能。如何簡化我的請求代碼?
public IEnumerable<SelectListItem> Functions { get
{
List<SelectListItem> result = new List<SelectListItem>();
using (followupconsultantEntities dataModel = new followupconsultantEntities())
{
var myEvents = from e in dataModel.functions
select e;
foreach (var function in myEvents)
{
SelectListItem myList = new SelectListItem
{
Value = function.ID_Function.ToString(CultureInfo.InvariantCulture),
Text = function.FU_Name
};
result.Add(myList);
}
}
return result;
} }
感謝您的幫助
的觀點:
<div class="editor-field">
<%: Html.DropDownListFor(m => m.SelectedFunction,Model.Functions) %>
</div>
的信息,我的控制器:
public ActionResult Register()
{
ViewData["PasswordLength"] = MembershipService.MinPasswordLength;
return View(new RegisterModel());
}
感謝您的幫助,像我的代碼工作,所以這是我想要的東西,但是,有關與視圖System.ObjectDisposedException發生一個錯誤。我編輯帖子以顯示視圖和控制器。 我可以做什麼樣的改變? –
@ArnaudBessems你將不得不在''using'塊中檢索你的'函數'數據。在寫入數據之前,您不會實際嘗試獲取數據,直到它在視圖中呈現,並且那段時間您的上下文已經被處置。 – James
在關閉上下文之前,您需要遍歷IQueriable。所以你需要使用dataModel.functions.ToArray() –