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コントローラーの Hide メソッドの代わりに使用ActionResultします (もちろん、"return" 句は削除してください)。

于 2013-11-04T18:21:16.983 に答える