现在我正在尝试创建一个链接,在用户单击时,将更改布尔值而不调用它自己的视图。每当我点击链接时,它会将我发送到一个不存在的视图。任何人都可以找到我做错的事情,以确保它保持在当前视图中并执行操作吗?
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();
}
另外,一个稍微相关的问题是,有没有办法将链接变成按钮?
答案 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”子句)。