没有视图创建操作链接

时间:2013-11-04 17:24:47

标签: 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('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();
}

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

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

使用void而不是ActionResult作为控制器中的Hide方法(当然,删除“return”子句)。