Вероятно, лучший способ сделать это в JavaScript, чтобы текстовые поля могли включать / отключать на лету в зависимости от значения вашей частоты ввода.
Что-то вроде:
$(function() {
EnableDisableFrequency();
$('#Frequency').change(function() {
EnableDisableFrequency();
});
});
function EnableDisableFrequency() {
if ($('#Frequency').val() === "Weekly") {
$('#BiWeekly').prop('disabled', true);
$('#Weekly').prop('disabled', false);
} else if ($('#Frequency').val() === "BiWeekly") {
$('#BiWeekly').prop('disabled', false);
$('#Weekly').prop('disabled', true);
}
}
Мой JavaScript немного ржавый, но я уверен, что это должно сработать.
Однако я согласен со Стивеном Мюке, что ваш частотный ввод должен быть выпадающим списком.
@Html.DropDownListFor(m => m.Frequency, Model.FrequencyList)
Просто определите FrequencyList в вашей ViewModel как список, который содержит все потенциальные значения, которые, как я полагаю, составляют только Еженедельно и раз в две недели
FrequencyList = new List<SelectListItem>
{
new SelectListItem
{
Text = "Weekly",
Value = "Weekly"
},
new SelectListItem
{
Text = "BiWeekly",
Value = "BiWeekly"
}
};
JavaScript может остаться прежним.