Я привязываю переключатель к группе таким образом, что один из них будет иметь значение isChecked true с помощью name="someuniquename", но если я это сделаю, значение isChecked всегда будет false. Если я дам им разные значения, например asp-for="Phrases.IsChecked" name="Phrases.IsChecked", они станут истинными, но тогда оба радио станут доступны для кликов.
Я я пытаюсь назначить isChecked=true в зависимости от того, какое радио выбрано.
У меня есть модель:
public class RequestMaintenanceModel
{
[ValidateNever]
public int Id { get; set; }
[ValidateNever]
public List
phraseModel { get; set; }
public List Phrases { get; set; } = PhraseModel.PredefinedPhrases();
}
И фразы, жестко запрограммированные в начале:
public class PhraseModel
{
[ValidateNever]
public int Id { get; set; }
public string Phrase { get; set; }
public string Category { get; set; }
public bool IsChecked { get; set; }
[ValidateNever]
[ForeignKey("RequestMaintenanceModel")]
public int RequestMaintenanceID { get; set; }
public RequestMaintenanceModel RequestMaintenance { get; set; }
public static List
PredefinedPhrases()
{
var phrases = new List
{
new PhraseModel{Id=1, Category="Request Status", Phrase="Normal", IsChecked=false},
new PhraseModel{Id=2, Category="Request Status", Phrase="Urgent", IsChecked=false},
};
return phrases;
}
}
Контроллер:
public IActionResult Create()
{
var model = new RequestMaintenanceModel();
return View(model);
}
[HttpPost]
[ValidateAntiForgeryToken]
public async Task Create(RequestMaintenanceModel model)
{
if (model.Phrases != null)
{
if (ModelState.IsValid)
{
_context.requestMaintenanceModel.Add(model);
await _context.SaveChangesAsync();
if (model.Phrases != null && model.Phrases.Any())
{
var selectedPhrases = model.Phrases.Where(p => p.IsChecked).ToList();
foreach (var phrase in selectedPhrases)
{
phrase.RequestMaintenanceID = model.Id;
_context.phraseModel.Add(phrase);
}
}
await _context.SaveChangesAsync();
return RedirectToAction("Index");
}
return View("Create", model);
}
Просмотр:
@for (int i = 0; i < Model.Phrases.Count; i++)
{
if (Model.Phrases.Category == "Request Status")
{
@Model.Phrases.Phrase
}
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... del-in-net
Привяжите группу переключателей к модели в .Net ⇐ C#
Место общения программистов C#
-
Anonymous
1736493606
Anonymous
Я привязываю переключатель к группе таким образом, что один из них будет иметь значение isChecked true с помощью name="someuniquename", но если я это сделаю, значение isChecked всегда будет false. Если я дам им разные значения, например asp-for="Phrases[i].IsChecked" name="Phrases[i].IsChecked", они станут истинными, но тогда оба радио станут доступны для кликов.
Я я пытаюсь назначить isChecked=true в зависимости от того, какое радио выбрано.
У меня есть модель:
public class RequestMaintenanceModel
{
[ValidateNever]
public int Id { get; set; }
[ValidateNever]
public List
phraseModel { get; set; }
public List Phrases { get; set; } = PhraseModel.PredefinedPhrases();
}
И фразы, жестко запрограммированные в начале:
public class PhraseModel
{
[ValidateNever]
public int Id { get; set; }
public string Phrase { get; set; }
public string Category { get; set; }
public bool IsChecked { get; set; }
[ValidateNever]
[ForeignKey("RequestMaintenanceModel")]
public int RequestMaintenanceID { get; set; }
public RequestMaintenanceModel RequestMaintenance { get; set; }
public static List
PredefinedPhrases()
{
var phrases = new List
{
new PhraseModel{Id=1, Category="Request Status", Phrase="Normal", IsChecked=false},
new PhraseModel{Id=2, Category="Request Status", Phrase="Urgent", IsChecked=false},
};
return phrases;
}
}
Контроллер:
public IActionResult Create()
{
var model = new RequestMaintenanceModel();
return View(model);
}
[HttpPost]
[ValidateAntiForgeryToken]
public async Task Create(RequestMaintenanceModel model)
{
if (model.Phrases != null)
{
if (ModelState.IsValid)
{
_context.requestMaintenanceModel.Add(model);
await _context.SaveChangesAsync();
if (model.Phrases != null && model.Phrases.Any())
{
var selectedPhrases = model.Phrases.Where(p => p.IsChecked).ToList();
foreach (var phrase in selectedPhrases)
{
phrase.RequestMaintenanceID = model.Id;
_context.phraseModel.Add(phrase);
}
}
await _context.SaveChangesAsync();
return RedirectToAction("Index");
}
return View("Create", model);
}
Просмотр:
@for (int i = 0; i < Model.Phrases.Count; i++)
{
if (Model.Phrases[i].Category == "Request Status")
{
@Model.Phrases[i].Phrase
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79344886/bind-a-radio-button-group-to-model-in-net[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия