1

现在我正在尝试创建一个链接,在用户单击时,它会更改布尔值而不调用它自己的视图。但是,每当我单击该链接时,它都会将我发送到一个不存在的视图。谁能找到我做错了什么以确保它保持在当前视图中并执行操作?

该cshtml:

@Ajax.ActionLink("Hide",
"Hide",
"Manager",
new { id = item.MenuID },
new AjaxOptions
{
HttpMethod = "POST",
OnSuccess = "function() { alert('The item has been hidden')"
})

控制器:

[HttpPost]
public ActionResult Hide(int id)
{
    Menu menu = db.Menus.Find(id);
    if (menu == null)
    {
        return HttpNotFound();
    }
    menu.Display = false;
    db.Entry(menu).State = EntityState.Modified;
    db.SaveChanges();
    return new EmptyResult();
}

另外,一个稍微相关的问题,有没有办法把链接变成一个按钮?

4

2 回答 2

1

您的页面很可能缺少以下脚本之一。确保引用它们:

<script src="/Scripts/jquery-1.7.1.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery.unobtrusive-ajax.js" type="text/javascript"></script>
<script src="/Scripts/MicrosoftAjax.js" type="text/javascript"></script>
<script src="/Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script>
于 2013-11-04T18:12:18.697 回答
0

使用void代替ActionResult控制器中的 Hide 方法(当然,删除“return”子句)。

于 2013-11-04T18:21:16.983 回答