Я привязываю переключатель к группе таким образом, что один из них будет иметь значение 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#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение