2017-05-08 75 views
0

無法使用預先選定的值填充dropdonwlist。使用預先選定的值處理viewbag方法。但是,當我嘗試使用基於模型的方法時,我發現沒有運氣。無法使用預選值設置DropDownlist

public ActionResult Edit(int?id) 
{ 
    Job_ClientVM Vm = new Job_ClientVM(); 
    Vm.Job_Info = Get_jobdetails(id); 
    //4 is desired pre-selected ID value  
    Vm.Recruiters = new SelectList(db.Recruiter_Info.ToList(), "Id", 
    "Recruiter_Name",4); 
} 

這是我的看法

@Html.DropDownListFor(Model => Model.SelectedRecruiterID, Model.Recruiters, "Assign Recruiter", new { @class = "form-control" }) 

回答

1

你需要你通過模型視圖之前設置的SelectedRecruiterID值在GET方法。

public ActionResult Edit(int?id) 
{ 
    Job_ClientVM Vm = new Job_ClientVM(); 
    Vm.Job_Info = Get_jobdetails(id);  
    Vm.Recruiters = new SelectList(db.Recruiter_Info.ToList(), "Id", "Recruiter_Name"); 
    // Set the value of SelectedRecruiterID 
    Vm.SelectedRecruiterID = 4; 
    // Pass the model to the view 
    return View(Vm); 
} 

注意的是,在SelectList構造函數設置所選屬性(第4個參數)是沒有意義的 - 它綁定到一個模型屬性(內部的方法構建一個新IEnumerable<SelectListItem>並將Selected財產基礎上的價值時,忽略

+0

您的解決方案正在工作,但當我試圖分配Vm.SelectedRecruiterID = Vm.Job_Info.Recruiter_ID; 我面臨錯誤無法將類型int?轉換爲int類型轉換丟失任何關於如何前進的想法 – Arun3x3

+0

我不知道你的模型是什麼或者'SelectedRecruiterID'和'Job_Info.Recruiter_ID'是什麼類型,但是顯然他們是不同的。沒有看到你的模型最好的猜測是'Vm.SelectedRecruiterID = Vm.Job_Info.Recruiter_ID.GetValueOrDefault();' –

+0

我解決了該問題,通過改變SelectedRecruiterID到 「公衆可空 SelectedRecruiterID {獲取;集;}」 我想問你是否有任何關於下拉列表的良好做法的材料。謝謝 – Arun3x3