У меня есть этот XML:поддерживать состояние между контроллером вызовами
<Preferences>
<Section Name="PREF_SECTION_NAME_1">
<Preference Name="PREF_NOTIFY_1" Type="radio">
<Options>
<Option Name="PREF_OPT_YES" Value="true"/>
<Option Name="PREF_OPT_NO" Value="false"/>
</Options>
<Default>true</Default>
</Preference>
</Section>
</Preferences>
Я сериализую к модели и перейти к моему Виду:
части моего View
case "radio":
<b>@Html.Label(Model.Section[i].PreferenceModel[j].Name)</b>
for (var r = 0; r != Model.Section[i].PreferenceModel[j].Options.Count(); r++)
{
if (Model.Section[i].PreferenceModel[j].Default == Model.Section[i].PreferenceModel[j].Options[r].Value)
{
@Html.RadioButtonFor(m => m.Section[i].PreferenceModel[j].Name, Model.Section[i].PreferenceModel[j].Options[r].Value, new { @checked = true })
}
else
{
@Html.RadioButtonFor(m => m.Section[i].PreferenceModel[j].Name, Model.Section[i].PreferenceModel[j].Options[r].Value)
}
}
I (как пользователь) выбирает второй переключатель (ложь)
Затем я вызываю свой контроллер Метод эр на кнопку отправки, и я получаю следующие значения:
Мне нужно «по умолчанию», чтобы отразить выбор пользователей, которые в этом случае должны быть «ложным».
Я попробовал каждую комбинацию я могу думать, но он по-прежнему всегда «нулевой»
кто может мне помочь?
благодаря
К сожалению, я пропустил немного кода из:
@Html.HiddenFor(m => m.Section[i].PreferenceModel[j].Name, "Default")
HTML-Rendered:
<h1><label for="PREF_SECTION_NAME_1">PREF_SECTION_NAME_1</label></h1>
<div class="clear"></div>
<input length="4" id="Section_0__PreferenceModel_0__Type" name="Section[0].PreferenceModel[0].Type" type="hidden" value="radio">
<input length="4" id="Section_0__PreferenceModel_0__Name" name="Section[0].PreferenceModel[0].Name" type="hidden" value="PREF_NOTIFY_1">
<b><label for="PREF_NOTIFY_1">PREF_NOTIFY_1</label></b>
<input checked="True" id="Section_0__PreferenceModel_0__Name" name="Section[0].PreferenceModel[0].Name" type="radio" value="true">
<input id="Section_0__PreferenceModel_0__Name" name="Section[0].PreferenceModel[0].Name" type="radio" value="false">
<input length="7" id="Section_0__PreferenceModel_0__Name" name="Section[0].PreferenceModel[0].Name" type="hidden" value="PREF_NOTIFY_1">
моя модель:
[XmlRoot("Preferences")]
public class PreferencesModel
{
/// <summary>
/// Message to display to user on UI
/// </summary>
[XmlIgnore]
public string MessageToUser { get; set; }
/// <summary>
/// Stores Preferences
/// </summary>
[XmlElement(ElementName = "Section")]
public List<Section> Section { get; set; }
}
public class Section
{
/// <summary>
/// Name of Section (for Grouping Purposes)
/// </summary>
[XmlAttribute("Name")]
public string Name { get; set; }
/// <summary>
/// List of Preferences for this section
/// </summary>
[XmlElement("Preference")]
public List<PreferenceModel> PreferenceModel { get; set; }
}
public class PreferenceModel
{
/// <summary>
/// Type of HTML Control ie radio button, textbox
/// </summary>
[XmlAttribute("Type")]
public string Type { get; set; }
/// <summary>
/// Name of Preference
/// </summary>
[XmlAttribute("Name")]
public string Name { get; set; }
/// <summary>
///
/// </summary>
//[XmlAttribute("Default")]
[XmlElement("DefaultValue")]
public string DefaultValue { get; set; }
[XmlIgnore]
public bool CheckBoxValue
{
get
{
bool flag;
if (Boolean.TryParse(DefaultValue, out flag))
{
return flag;
}
else
{
return false;
}
}
set
{
DefaultValue = value.ToString();
}
}
/// <summary>
///
/// </summary>
[XmlElement("Options")]
public List<Option> Options { get; set; }
}
[XmlType("Option")]
public class Option
{
/// <summary>
///
/// </summary>
[XmlAttribute("Name")]
public string Name { get; set; }
/// <summary>
///
/// </summary>
[XmlAttribute("Value")]
public string Value { get; set; }
}
Вы разместили выражение html.hiddenfor внутри формы? –
@ StianStandahl да. Конечно. спасибо –
У вас есть образец полученного html? –