Я работаю с группой RadioButton в ASP.NET, MVC, Razor и пытаюсь динамически установить выбранную кнопку в радиогруппе на основе ранее выбранной опции. Здесь уместна фрагмент кода:Невозможно отобразить выбранную кнопку MVC Radio
List<Product> productList = ViewBag.ProductList;
if (productList != null && productList.Count > 0)
{
foreach (Product product in productList)
{
<tr>
<td>
@Html.RadioButtonFor(p => p.ProductIdString, productList[i].Id, new { Checked = @ViewBag.ProductSelected==product.Id ? true: false, onclick="this.form.submit();", tabindex = @tab })
@{tab++;}
@{i++;}
<td>@product.Name</td>
<td>@product.Description</td>
<td>@product.FormattedPrice</td>
</tr>
}
}
Во время первого размещения страницы, все работает, как ожидалось. Сохраненный productId правильно устанавливает этот параметр. Однако, если новый вариант будет выбран после начальной загрузки, то выбранная кнопка Checked и проверила свойство и атрибуты будут установлены правильно, как показаны на рисунке, но ранее выбранная кнопка будет помечена как проверенная на форме:
<td>
<input Checked="True" checked="checked" data-val="true" data-val-required="Please select a product" id="ProductIdString" name="ProductIdString" onclick="this.form.submit();" tabindex="30" type="radio" value="1" />
</td>
Я прочитал несколько сообщений, в которых указано, что проверенные/проверенные атрибуты/свойства предназначены для выбора по умолчанию, и как только он установлен, кажется, что это невозможно изменить? Это верно? Если нет, как вы динамически устанавливаете выбранный переключатель?
Только одно примечание, когда форма передается контроллеру, объект Request имеет правильно выбранное значение, но он просто не отображается как выбранный.
Я в затруднении здесь и буду благодарен за любые предложения.