Sarah Mohammed77 Ответов: 2

Вставить значение флажка в базу данных ASP.NET MVC , C#


Привет друзья я покажу вам свою проблему теперь у меня есть эта модель
администратор публичного класса
{
[Key]
        public int ID { get; set; }

[Required, MaxLength(400) ]
       public string LoginName { get; set; }

public bool ISEnroled { get; set; }


}

а это мой контроллер

public ActionResult Admins( Admin rec, bool ISEnroled)
var dbrec = db.Admins.Find(rec.ID);
 dbrec.LoginName = rec.LoginName;
 dbrec.ISEnroled = ISEnroled;
db.SaveChanges();
       {

и вот такой вид
<script>
    function submitForm() {
    <pre>  $("#formParentID").submit();
        
    }
</script>


<form action="@Url.Action("Admins")" id="formParentID" target="_self" method="post" enctype="multipart/form-data">
                            @Html.Hidden("ID", Model.ID)

<div class="blog_form_input">
                                <label>Login Name</label>
                                @Html.TextBox("LoginName", Model.LoginName, new { @class = "name_input" })
                                <span id="errorLoginName" style="display:none"> <label style="color:red">You have to enter login name </label></span>
                            </div>

 <div class="blog_form_input">
                                <label>Enroll</label>
                                @{ string ISEnroled = Model.ISEnroled ? "checked" : "";}
                                <input type="checkbox" name="ISEnroled" id=@string.Format("ISEnroled" + Model.ISEnroled) class="css-checkbox9 all_check" value="@Model.ISEnroled" @ISEnroled />
                                <label for=@string.Format("ISEnroled" + Model.ISEnroled) class="css-label9" checked="checked">&nbsp; </label>
                           </div>


проблема здесь когда я нажимаю флажок чтобы передать истинное значение оно не проходит и
сохраните его как истинное значение в базе данных я не знаю почему даже это ложное значение оно не передается для сохранения в базе данных


что плохого я сделал ?

Что я уже пробовал:

Я попытался использовать приведенный выше код, но не смог настроить ошибку

2 Ответов

Рейтинг:
18

Richard Deeming

Цитата:
<input type="checkbox" name="ISEnroled" ... value="@Model.ISEnroled" @ISEnroled />

Вы устанавливаете значение флажка на текущее значение из модели, которое является false.

Поэтому, даже если вы установите флажок, при отправке формы значение, которое вы отправляете, будет "false".

Используйте либо флажок[^] или CheckBoxFor[^] помощники для рендеринга флажка:
<div class="blog_form_input">
    @Html.LabelFor(m => m.LoginName, "Login Name")
    @Html.TextBoxFor(m => m.LoginName, new { @class = "name_input" })
    <span id="errorLoginName" style="display:none"> <label style="color:red">You have to enter login name </label></span>
</div>
<div class="blog_form_input">
    @Html.LabelFor(m => m.ISEnroled, "Enroll")
    @Html.CheckBoxFor(m => m.ISEnroled, new { @class = "css-checkbox9 all_check" })
    <label for="ISEnroled" class="css-label9" checked="checked">  </label>
</div>


Sarah Mohammed77

Привет, Ричард , я использовал код , который вы написали, но почему ckeckbox не виден, когда я запускаю сайт, я не могу видеть флажок?

Sarah Mohammed77

Привет , Ричард, почему флажок не виден, я не мог его увидеть после запуска сайта ?

Sarah Mohammed77

спасибо вам за ваше время и усилия , Ричард, теперь это работает

Member 13613423

когда я нажал checkbox .it хранится " в базе данных

Рейтинг:
1

Vaibhav-Systematix

Мы можем достичь этого, установив скрытое значение поля и получив его значение в сообщении формы


@Html.LabelFor(m => m.ISEnroled, "зарегистрироваться")

<input type="checkbox" name="ISEnroled" id=@string.Формат("ISEnroled" + Модель.ISEnroled) class="css-checkbox9 all_check" value="@Model.ISEnroled" @ISEnroled />




и написать скрипт, чтобы установить скрытые поля перезаписать значение, и сделать это установить скрытое поле значение в виде поста



$("#ISEnroled").click(функция () {
ВАР этот флажок установлен = документ.метода getElementById('ISEnroled').проверено;
$("#hdnIsEnroll").val(isChecked);
});