もっと詳しく説明できます。ASP.NET MVC 5では、POSTリクエストが独自のWebページから取得されたことをフレームワークがどのように認識していますか?
私は、Visual Studio 2017を使用してASP.NETのMVC 5を学習し、テストしています。コントローラの「アクション」またはメソッドは、「RouteConfig.cs」のルートフォーマットに従ってマップされています。すべてのパブリックメソッドはWebリクエストにアクセスできます。このように、ビューを返す単純なGETメソッドの場合
:私は唯一の正しいURLを入力する必要があるだろうと私はビューを取得している
// GET: Movies/Create
public ActionResult Create()
{
return View();
}
。
しかし、データ入力の削除などの賢明なPOSTアクションの場合、コントローラはPOSTリクエストが、未知のWebページではなく、独自のViewsの1つから来る有効なものであることをどのように確認しますか?アクションは、呼び出される一致するルートにマップされている必要があるだけであることを前提にしています。
例として、マイクロソフト社のチュートリアルの1から供給コードを使用する:
public class MoviesController : Controller
{
private MovieDBContext db = new MovieDBContext();
/*
Bunch of Other GET Actions
*/
// POST: Movies/Delete/5
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public ActionResult DeleteConfirmed(int id)
{
Movie movie = db.Movies.Find(id);
db.Movies.Remove(movie);
db.SaveChanges();
return RedirectToAction("Index");
}
/*
Bunch of Other GET Actions
*/
}
このコントローラは、これをどのように実現するのでしょうか?そうでない場合は、どのように達成できますか?
これはすべて、 'ValidateAntiForgeryToken'に関するものです。 Microsoftチュートリアルを参照してください。 –
@AlexKudryashev ok、それを指摘してくれてありがとう。 – CodeIntern