私は現在CRUDを使ってアイデンティティを調べています。しかし、私はこれを解読することができます。ログインした場合のみ削除できるようにしようとしています。if (User.Identity.IsAuthenticated)
を追加してみましたが、それは動作しません。削除ページに入った後にログインページに送られます。これは私のコントローラです:ログインしていなければユーザーが削除しないようにする
public ActionResult _RemoveItems()
{
var Items = db.CreatePosts.ToList();
return PartialView(Items);
}
[HttpPost]
public ActionResult _RemoveItem(int Id)
{
if (HttpContext.User.Identity.IsAuthenticated)
{
CreatePost CreatePost = db.CreatePosts.Find(Id);
if (CreatePost != null)
{
db.CreatePosts.Remove(CreatePost);
db.SaveChanges();
}
}
return RedirectToAction("Index", "Manage");
}
と私はあなたがページを入力することができます前に、それはあなたがログインする必要が作ることができないので、これは、私の削除
@Html.ActionLink("Slet", "_RemoveItem", "Home", new { @id = item.Id }, new { @class = "btn btn-danger" })
私は間違って何をやっています_RemoveItem
リンクがあなたの*ビュー*に存在する場合、ログインしていなければ削除するオプションが許可されているという印象を与えます。あなたが投稿したものから、削除されましたが、何が起こったのかの説明なしでインデックスページに戻します。私はあなたが(フィルタを構築せずに)削除コントローラに入るのを防ぐことはできないと思うが、ログインしていなければアクションのコード内容を実行するのを防ぐことができるが、 'Identity.IsUserAuthenticated'トリックを行う必要があります。 –
問題はそれはなぜですか?知りません。私はそれを間違って配置しましたが、どこに配置すべきか分かりません。 –
あなたの[HttpGet]メソッド名は_RemoveItemですが、あなたの[HttpPost]メソッド名は_RemoveItemsですが、ちょっとしたことです。 – nocturns2