Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 单击复选框以使用MVC时更改DB值_Asp.net Mvc_Http Post_Checkboxfor - Fatal编程技术网

Asp.net mvc 单击复选框以使用MVC时更改DB值

Asp.net mvc 单击复选框以使用MVC时更改DB值,asp.net-mvc,http-post,checkboxfor,Asp.net Mvc,Http Post,Checkboxfor,这是我关于SO的第一个问题,请发发善心。我正在做一个项目,使邮件可以标记为未读。当用户单击详细信息时,它将消息标记为已读,但我尝试使用复选框来允许用户将消息标记为未读。这是我在深入研究后的尝试。当我返回主视图时,我似乎无法将消息标记为未读 以下是in Details.cshtml中的复选框: <dd> @Html.CheckBoxFor(model => model.UnreadMessage, new { onclick = "UpdateUnreadMessage

这是我关于SO的第一个问题,请发发善心。我正在做一个项目,使邮件可以标记为未读。当用户单击详细信息时,它将消息标记为已读,但我尝试使用复选框来允许用户将消息标记为未读。这是我在深入研究后的尝试。当我返回主视图时,我似乎无法将消息标记为未读

以下是in Details.cshtml中的复选框:

<dd>
     @Html.CheckBoxFor(model => model.UnreadMessage, new { onclick = "UpdateUnreadMessage(this)" })
</dd>

有人能帮我找出我做错了什么吗?非常感谢。

您没有传递要标记为未读的邮件的ID。也将其传递给AJAX函数:

data: { check: UnreadMessage, id: YourVariableIDHere },

如果在MessageController中使用POST方法,则将url更新为


url:@url.Action(“UpdateUnreadMessage”,“Message
”)

因此我能够解决发生的问题。我确实需要通过ID。这是我如何让它工作的

CSHTML:

<dd>@Html.CheckBoxFor(model => model.UnreadMessage, new { id = "UnreadCheckBox" })</dd>

谢谢大家的帮助和建议。

谢谢,但这似乎也不起作用。在用户单击复选框之前,我的代码似乎正在命中AJAX函数。抛出了什么错误?嘿,实际上没有抛出任何错误。它从不点击POST函数。虽然,我认为@prabhu379实际上已经解决了下面的问题。我想你也需要像@willy david jr指出的那样通过id。
data: { check: UnreadMessage, id: YourVariableIDHere },
<dd>@Html.CheckBoxFor(model => model.UnreadMessage, new { id = "UnreadCheckBox" })</dd>
<script>
$("#UnreadCheckBox").change(function () {
    var UnreadMessage = $(this).is(':checked');
    $.ajax({
        type: 'POST',
        url: "@Url.Action("UpdateUnreadMessage", "Message")",
        data: { check: UnreadMessage, id: '@Model.MessageID' },
        success: function (res) {
            console.log(res);
        },
    });
});
        public ActionResult UpdateUnreadMessage(bool check, Guid? id)
    {
        Message message = db.Messages.Find(id);
        if (check == true)
        {
            message.UnreadMessage = true;
        }
        else{
            message.UnreadMessage = false;
        }
        db.SaveChanges();
        return Content("Succesful Update");
    }