2014-06-18 21 views
0

也有類似的問題,我嘗試了大部分。我決定尋求幫助,而不是繼續摧毀剩餘的代碼,同時從類似的過去的問題中召喚惡魔。Html.DropDownListFor返回null

當我到達AddMembership操作時,我得到一個空值而不是選定的項目。以下是詳細信息。

查看;

@using (Html.BeginForm("AddMembership", "WorkSpace", FormMethod.Post, new { data_ajax = "true", id = "frmAddMembership" })) 
{ 
<div id="newMembershipDiv"> 

    @Html.DropDownListFor(m => m.selectedID, new SelectList(Model.allInfo, "Value","Text",1), "Select!") 
    <input type="submit" value="Add" name="Command" /> 
</div> 
} 

控制器(我只是想看看selectedID或任何出現在這裏。);

public ActionResult AddMembership(SelectListItem selectedID) 
{ 
    return View(); 
} 

模型;

public class SomeModel 
{ 
    public SelectList allInfo { get; set; } 
    public SelectListItem selectedID { get; set; } 
} 

它初始化allInfo的SelectList

model.allInfo = new SelectList(synHelper.getall().ToArray<Person>().Select(r => new SelectListItem {Text=r.Name, Value=r.prID.ToString() })); 

synHelper.getAll()返回以下類的列表畸形率;

public class Person 
{  
    public Guid prID { get; set; } 
    public string Name { get; set; } 
} 

回答

3

被張貼到你的行動的唯一的事情是selectedID,這是一個簡單的字符串。如果你漫步,在請求中看起來很簡單:

selectedID=1234 

因此,它應該作爲一個簡單的字符串等待。調整你的動作參數:

public ActionResult AddMembership(string selectedID) 
+0

謝謝你的答案,但另一個快速問題。如果我想將整個Person對象發送給該操作,那麼我需要做什麼更改?做一些像「@ Html.DropDownListFor(m => m」)給我一個空值的錯誤。 – mechanicum

+0

在附加說明中,當我進行更改時,我得到一個空字符串。 – mechanicum