由於某些原因,我的下拉列表中的SelectedId始終爲空,當我回發表單。模型中的項目不是空的,只是SelectedID。除了下拉選擇,我的模型的所有其他值都很好。以下是與我的下拉菜單相關的所有代碼。有任何想法嗎?謝謝!asp mvc下拉SelectedId爲空
P.S - 我在下拉菜單中使用了一個模板,當我在我的cshtml視圖中使用@ Html.EditorForModel()時,從我的模型中自動創建下拉菜單。
模板:
@model AFUEMVC.Models.DropDownModels.DropDownViewModel
@Html.DropDownListFor(x => x.SelectedId, new SelectList(Model.Items, "Value", "Text", Model.SelectedId))
型號:
//Dropdowns
[Display(Name = "Fire Type"),]
public DropDownViewModel FireTypeItems { get; set; }
視圖模型:
public class DropDownViewModel
{
public string SelectedId { get; set; }
public IEnumerable<SelectListItem> Items { get; set; }
}
編輯: 我按照以下方式填寫我的下拉菜單。
public void GenerateDropDowns(BasicIdentificationModel model)
{
///////////////////////DROP DOWNS
model.FireTypeItems = GetFireTypeItems();
/////////////////////////////////////
}
public DropDownViewModel GetFireTypeItems()
{
DropDownViewModel newdd = new DropDownViewModel();
newdd.Items = new[]
{
new SelectListItem { Value = "1", Text = "IA" },
new SelectListItem { Value = "2", Text = "Extended Attack" },
new SelectListItem { Value = "3", Text = "Large Fire Support" },
};
return newdd;
}
[HttpPost]
public ActionResult BasicIdentificationIndex(BasicIdentificationModel returndata)
{
GenerateDropDowns(returndata);
SaveDB(returndata);
return RedirectToAction("DispatchResponseIndex", "DispatchResponse");
}
我得到一個異常與@ Html.DropDownListFor(型號=> model.SelectedID,新的SelectList(新AFUEMVC.Models.BasicIdentificationModel()。SelectListItems, 「價值」, 「文本」)) 一個或多個驗證錯誤在模型生成過程中檢測到: \ tSystem.Data.Entity.Edm.EdmEntityType :: EntityType'SelectListItem'沒有定義鍵。定義此EntityType的關鍵字。 \ tSystem.Data.Entity.Edm.EdmEntitySet:EntityType:EntitySet'SelectListItems'基於沒有定義鍵的類型'SelectListItem'。 –
這是因爲你的實體類沒有定義主鍵。打開你的模型.edmx文件。右鍵單擊SelectedId屬性並選擇屬性。將實體密鑰屬性設置爲true。 – AminSaghi
我有點困惑,爲什麼我正在做這一切。我的要求之一是有下拉項目客戶端(因爲他們最終希望能夠離線使用HTML 5緩存的Web應用程序)。所以即使它像這樣工作,它似乎並沒有真正完成任何事情,儘管我真的很感謝幫助。 –