C# 创建没有视图的操作链接

C# 创建没有视图的操作链接,c#,asp.net-mvc,asp.net-mvc-4,razor,asp.net-ajax,C#,Asp.net Mvc,Asp.net Mvc 4,Razor,Asp.net Ajax,现在我正在尝试创建一个链接,当用户单击时,该链接将更改布尔值,而无需调用它自己的视图。但每当我单击链接时,它都会将我发送到一个不存在的视图。有人能找到我做错了什么以确保它保持在当前视图中并执行操作吗 cshtml: @Ajax.ActionLink("Hide", "Hide", "Manager", new { id = item.MenuID }, new AjaxOptions { HttpMethod = "POST", OnSuccess = "function() { alert('

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

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

还有一个稍微相关的次要问题,是否有办法将链接变成按钮?

最有可能的是,您的页面缺少以下脚本之一。确保您引用了所有这些内容:

<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>

您的页面很可能缺少以下脚本之一。确保您引用了所有这些内容:

<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>


使用
void
而不是
ActionResult
用于控制器中的隐藏方法(当然要删除“return”子句)。

使用
void
而不是
ActionResult
用于控制器中的隐藏方法(当然要删除“return”子句)。

关于次要问题(使其成为一个按钮),请参见此处:您在页面上引用的脚本是什么?请确保页面上包含了关于附带问题的ajax不引人注目的引用(使其成为一个按钮),请参见此处:您在页面上引用的脚本是什么?请确保页面上包含了ajax不引人注目的引用。嗯,完全忘记了执行脚本包含。请立即修复。现在要找到一种方法,使其在进行更改后刷新表。嗯,完全忘记执行脚本包含。请立即修复。现在,找到一种方法,使其在进行更改后刷新表。