为什么我的点击事件不起作用?(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" />
}

Jquery用于将值发送到我的ActionResult:

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();
}

我想做的是传递"记住"的值,如果我是正确的,它将是true或false,这取决于复选框是否被选中。

因为你有bool-Remember参数,你需要发送Remember,而你的URL没有"/",所以更新你的函数为

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

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

public ActionResult ItemsEdit(string sendIdToAction, bool Remember = false)

最新更新