2013-06-05 3 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, но когда я ничего не выбираю (он показывает «Select Please», как я определил), я хочу, чтобы он был null, но теперь это "", это означает, что он имеет значение ... Я просто хочу, чтобы это было так: я ничего не подаю, если ничего не выбрал, я ничего не имею в AllKey s, ни в строках Selected, я не хочу AllKeys не имеет ничего, если я не выбрать, спасибо

пс: для например:

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, - это если значение вообще не опубликовано. В противном случае связующее устройство модели не могло бы знать разницу между фактическим нулем и когда вы действительно хотели опубликовать пустую строку.

Вы даже не можете создать настраиваемое связующее устройство, потому что вы обходите привязку к модели, перейдя непосредственно в коллекцию форм.

+0

plz Посмотрите, что я добавил для своих проблем, thx –

+0

@HaoYucheng - RadioButtonList совершенно другой, потому что, когда ничего не выбрано, ничего не выбрано. С выпадающим списком, который имеет значение по умолчанию .. оно имеет значение по умолчанию .. это значение равно "". Итак, что-то выбрано, значение по умолчанию. Если вы не хотите значения, то ваш единственный вариант - не иметь значения по умолчанию. –

+0

ОК, большое спасибо за ответ ур :) –

Смежные вопросы