为什么我的点击事件不起作用? (ASP.NET MVC)

时间:2020-04-30 13:26:48

标签: c# html asp.net asp.net-mvc

我的视图中有一个复选框,其中包含一个onclick事件,该事件将复选框ID发送到控制器中的操作结果(使用Ajax)。但是,在控制器中传递的值上运行断点后,当我单击复选框时,似乎没有任何反应吗?为什么会这样?

我的复选框:

@using (Html.BeginForm("ItemsEdit", "Items", FormMethod.Post))
{

            <input id = "@dataLineItem.Split(Model.ItemList.delimiterChar)[0]" type = "checkbox" value = "true" name = "Remember" onclick = "sendCheckId(this.id)"/>

            <input type = "hidden" value = "false" name = "Remember" />

}

将值发送到我的ActionResult的jQuery

function sendCheckId(checkedId) {
        var sentId = checkedId;
        $.post("Items/ItemsEdit/", { sendIdToAction: sentId })
    }

最后是我的“结果”控制器中的ActionResult:

public ActionResult ItemsEdit(string sendIdToAction, bool Remember)
{
            string itemCheck = "true";
            var path = "~/App_Data/Item.txt";
            var originalLines = System.IO.File.ReadAllLines(Server.MapPath(path));
            var updatedLines = new List<string>();

            foreach (var line in originalLines)
            {
                string[] infos = line.Split(',');

                if(infos[0] == sendIdToAction)
                {
                    infos[3] = Remember.ToString();
                }

                updatedLines.Add(string.Join(",", infos));
            }

            System.IO.File.WriteAllLines(Server.MapPath(path), updatedLines);

            return View();
}

我要执行的操作是传递“ Remember”的值,如果我正确的话,则取决于复选框是否被选中,该值为true或false。

1 个答案:

答案 0 :(得分:4)

因为您拥有bool记忆参数,所以需要发送记忆参数,并且URL缺少“ /”,因此将函数更新为

function sendCheckId(checkedId) {
        var sentId = checkedId;
        $.post("/Items/ItemsEdit/", { sendIdToAction: sentId, Remember: false });
}

如果您不想在POST方法中放置Remember参数,则可以在操作控制器中将默认值设置为

public ActionResult ItemsEdit(string sendIdToAction, bool Remember = false)
相关问题