MVC4 小技集メモ(2)
FormのCSRF(クロスサイトリクエストフォージェリ)対策
@Html.AntiForgeryToken()と [ValidateAntiForgeryToken]を使うべし
@using(@Html.BeginForm("Create","Hoge")){ @Html.AntiForgeryToken() <fieldset> <legend>ほげほげ</legend> <input type="text" name="newHoge" size="40" /> <input type="submit" value="登録" /> </fieldset> } [HttpPost] [ValidateAntiForgeryToken] public ActionResult CreateRole(string newrole){ ・・・・なんらたかんたら・・・ }
開発マシンで実行するとjavaScript のエラー0x80020003が発生する
ハンドルされない例外 下記ソースコードの行 2530、列 4 で発生しました。 http://localhost:28060/Scripts/jquery-1.8.2.js 0x80020003 - JavaScript 実行時エラー: メンバーが見つかりません。
ブラウザーモードがIE10互換表示になっているとこのエラーが発生するもよう。
F12を押して、ブラウザーモードをIE10にしておく。
補足:IE10互換になっているとIE7モードが選択されていた。IE7だとjavaScriptエラーになったり、半角入力のみを許すはずなのに全角入力もできてしまうというvalidationチェックが無視されることもあった。
毎回切り替えるのもめんどうなので、 【_layout.chtml】にX-UA-CompatibleをIE10にする指定を追加した。 これで常にIE10としてブラウザが起動する。 <!DOCTYPE html> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=10" /> ※最新のモードを使ってほしいときはIE=Edgeと記述すればよい <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> ・・・・なんらたかんたら・・・ 省略・・・・