Подтвердить что ты не робот

Как установить радиокнопку в режиме редактирования в режиме просмотра бритвы MVC

Я новичок в бритве MVC. Я пытаюсь редактировать веб-страницу. У меня есть два переключателя. Мне удастся сохранить данные для значений переключателей. Но когда я пытаюсь изменить это значение, я не могу выбрать тот переключатель, для которого сохраняются данные. Я перечислил для Gender

public enum Gender
{
    Male,
    Female
}

Мой код создания: -

<div class="editor-label">
   @Html.LabelFor(model => model.gender)
</div>
<div class="editor-field">
   @Html.RadioButtonFor(x => x.gender, (int)Gender.Male) Male
   @Html.RadioButtonFor(x => x.gender, (int)Gender.Female) Female
</div>

Изменить код как

<div class="editor-label">
   @Html.LabelFor(model => model.gender)
</div>
<div>
   @if (Model.gender == (int)Gender.Male)
   {
   @Html.RadioButtonFor(model => model.gender, "Male", new { @checked = true })
   @Html.Label("Male")
   @Html.RadioButtonFor(model => model.gender, "Female")
   @Html.Label("Female")
   }
   else
   {
   @Html.RadioButtonFor(model => model.gender, "Male")
   @Html.Label("Male")
   @Html.RadioButtonFor(model => model.gender, "Female", new { @checked = true })
   @Html.Label("Female")
   }
</div>
4b9b3361

Ответ 1

Вы написали как

@Html.RadioButtonFor(model => model.gender, "Male", new { @checked = true }) and
@Html.RadioButtonFor(model => model.gender, "Female", new { @checked = true })

Здесь вы взяли пол в качестве типа Enum и записали значение для переключателя в виде string type-, изменив "Мужской" на 0 и "Женский" на 1.

Ответ 2

Не делайте этого на уровне представления. Просто установите значение по умолчанию для свойства в конструкторе модели представления. Чистый и простой. В ваших пост-спинах выбранное вами значение автоматически заполнит правильный выбор.

Например

public class MyViewModel
{
        public MyViewModel()
        {
            Gender = "Male";
        }
}

<table>
  <tr>
	<td><label>@Html.RadioButtonFor(i => i.Gender, "Male")Male</label></td>
	<td><label>@Html.RadioButtonFor(i => i.Gender, "Female")Female</label></td>
  </tr>
 </table>

Ответ 3

Вот как я это делаю и работает как для создания, так и для редактирования:

//How to do it with enums
<div class="editor-field">
   @Html.RadioButtonFor(x => x.gender, (int)Gender.Male) Male
   @Html.RadioButtonFor(x => x.gender, (int)Gender.Female) Female
</div>

//And with Booleans
<div class="editor-field">
   @Html.RadioButtonFor(x => x.IsMale, true) Male
   @Html.RadioButtonFor(x => x.IsMale, false) Female
</div>

предоставленные значения (true и false) являются значениями, которые механизм будет отображать как значения для элемента html, т.е.

<input id="IsMale" type="radio" name="IsMale" value="True">
<input id="IsMale" type="radio" name="IsMale" value="False">

И проверенное свойство зависит от значения Model.IsMale.

Движок Razor, похоже, внутренне сопоставляет установленное значение переключателя со значением вашей модели, если для него существует правильное преобразование из строки в строку. Таким образом, нет необходимости добавлять его в качестве атрибута html в вспомогательном методе.

Ответ 4

Добавьте флажок в оба ваших переключателя. А затем показать/скрыть нужный документ в готовом документе.

 <div class="form-group">
                            <div class="mt-radio-inline" style="padding-left:15px;">
                                <label class="mt-radio mt-radio-outline">
                                    Full Edition
                                    <input type="radio" value="@((int)SelectEditionTypeEnum.FullEdition)" asp-for="SelectEditionType" checked>
                                    <span></span>
                                </label>
                                <label class="mt-radio mt-radio-outline">
                                    Select Modules
                                    <input type="radio" value="@((int)SelectEditionTypeEnum.CustomEdition)" asp-for="SelectEditionType" checked>
                                    <span></span>
                                </label>

                            </div>
                        </div>

Ответ 5

Вот код для получения значения проверенного переключателя и установки переключателя в соответствии с его значением в форме редактирования:

контроллер:

[HttpPost]
public ActionResult Create(FormCollection collection)
{
    try
    {
        CommonServiceReference.tbl_user user = new CommonServiceReference.tbl_user();
        user.user_gender = collection["rdbtnGender"];
        return RedirectToAction("Index");
    }
    catch(Exception e)
    {
        throw e;
    }
}

public ActionResult Edit(int id)
{
    CommonServiceReference.ViewUserGroup user = clientObj.getUserById(id);
    ViewBag.UserObj = user;
    return View();
}

ПОСМОТРЕТЬ:

Создайте:

<input type="radio" id="rdbtnGender1" name="rdbtnGender" value="Male" required>
<label for="rdbtnGender1">MALE</label>
<input type="radio" id="rdbtnGender2" name="rdbtnGender" value="Female" required>
<label  for="rdbtnGender2">FEMALE</label>

Редактировать:

<input type="radio" id="rdbtnGender1" name="rdbtnGender" value="Male" @(ViewBag.UserObj.user_gender == "Male" ? "checked='true'" : "") required>
<label for="rdbtnGender1">MALE</label>

<input type="radio" id="rdbtnGender2" name="rdbtnGender" value="Female" @(ViewBag.UserObj.user_gender == "Female" ? "checked='true'" : "") required>
<label for="rdbtnGender2">FEMALE</label>

Ответ 6

Чтобы установить переключатель в режиме редактирования в режиме просмотра бритвы MVC, попробуйте выполнить следующие действия:

<div class="col-lg-11 col-md-11">
     @Html.RadioButtonFor(m => m.Role, "1", Model.Role == 1 ? "checked" : string.Empty) 
     <span>Admin</span>
     @Html.RadioButtonFor(m => m.Role, "0", Model.Role == 0 ? "checked" : string.Empty)
     <span>User</span>
     @Html.HiddenFor(m => m.Role)
</div>

Надеюсь, это поможет!