2013-06-05 96 views
1

我使用MVC的HTML幫助複選框這樣的:asp.net的MVC HTML輔助DROPDOWNLIST發出

@Html.DropDownList(item.QuestionId.ToString(), 
new SelectList(((DropDownList)item).Options, "OptionId", "Name"), 
"Select Please") 

,當我提出,我[http] controller,我可以通過

[HttpPost] 
    public ActionResult TestList(FormCollection formCollection) 
    { 
     foreach (var res in formCollection.AllKeys) 
     { 
      string Selected = null; 
      Selected = formCollection[res]; 
     } 

價值,但例如,當我選擇「A」時,我得到A,但是當我沒有選擇任何東西(它顯示「請選擇」,因爲我定義),我想它是null,但現在它是"",這意味着它有價值...我只是想讓它變成這樣:我沒有提交任何內容,如果我沒有選擇任何內容,我的意思是AllKey沒有任何內容S,無論是在字符串Selected,我想allkeys無關,如果我不選擇,謝謝

PS: 爲如:

foreach (var SubItem in ((RadioButtonList)item).Options) 
{ 
    @Html.RadioButton(item.SurveyItemId.ToString(), SubItem.OptionId) @SubItem.Name 
} 

它會顯示一個問題的選擇,如果我選擇了一個,我可以得到一個形式我的控制器,我沒有選擇B,所以在我的控制器AllKeys,它不包含B或C或D,所以我想dropdownlist就像這樣,如果我沒有選擇任何人,它不會顯示「」或東西否則就像我沒有選擇B或C或D,在AllKeys中什麼都不會顯示

回答

3

首先,這不是複選框。這是一個下拉列表。用正確的信息提出問題很重要,否則你會得到錯誤的答案。其次,這是不可能的,它與MVC無關,這是由瀏覽器完成的。當您實際提交內容時,無法讓瀏覽器提交「null」。在http文章中沒有「null」的概念。

如果沒有發佈該值,唯一的方法是獲取null。否則,模型聯編程序無法知道實際null與實際需要發佈空字符串的區別。

您甚至不能創建自定義模型綁定器,因爲您直接通過表單集合繞過模型綁定。

+0

plz看看我爲我的問題添加了什麼,thx –

+0

@HaoYucheng - RadioButtonList是完全不同的,因爲當沒有選擇任何東西時,實際上沒有選擇任何東西。使用具有默認值的下拉列表..它有一個默認值..該值是「」。所以選擇了一些默認值。如果你不想要一個值,那麼你唯一的選擇是根本沒有默認值。 –

+0

好的,非常感謝你的回覆:) –