2016-05-29 3 views
2

私はビジュアルスタジオ2015とaspnetcore rc2で作業しています。投稿するにはすべてのフォームで@html.antiforgerytoken()を使用します。しかし、mvc 6は最初のものを作成し、他のものを削除します(または無視します)。私はmasterviewでこれを試しましたが、マスターなしでは結果はありませんでした。私はどこかで間違いがあると思っていますが、どこで?私はブラウザの履歴をクリアし、1つのビューと1つのコントローラで単純な空のasp.netプロジェクトを作成し、再度試してみました。mvc 6は一度だけ抗鳥類鑑定士を作成します

ここにスクリーンショットがあります。

enter image description here出力enter image description here私はちょうど@html.antiforgerytokenを使用し、@addtaghelperや他の似extentionsを使用しないでください。

+0

私は今のところ、このスタイルを使用して、この@ {if(viewdata ["token"] == null){html.antiforgerytoken();}}とフォーム内の@viewdata ["token"]は答えではありません。 – ergen

答えて

1

Github repo aspnet/MVCには、、#319#4595#4924という複数のコールについての問題があります。現在の動作は以前のバグの "効果"であるようです。開かれた#5005。変数に生成されたトークンを保存し、この変数を複数回書き込み:

@{ 
    var token = Html.AntiForgeryToken(); 
} 
<form id="form-one"> 
    @token 
</form> 
<form id="form-two"> 
    @token 
</form> 

更新:1.1.0 milestoneを予定してバグとして確認#5005、我々は回避策を持っている

現在(RTM 1.0.0のとおり)。

+0

私は[新しい]バグが好きです – ergen

0

私は#5005で述べたように、この状況は、HTMLタグヘルパーは<form>要素を生成するために使用ないている場合にのみ発生します。より侵襲的なヘルパーを使用して、すなわち、HTML生成に切り替える以外

、最も簡単な回避策は、あなたの_ViewImports.cshtmlに次のように追加することです:

@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 

または

@addTagHelper Microsoft.AspNetCore.Mvc.TagHelpers.RenderAtEndOfFormTagHelper, Microsoft.AspNetCore.Mvc.TagHelpers 
+0

あなたの応答に感謝します。私が質問で述べたように、私は@addtaghelperや他の類似のエクステンションを使用したくない(希望)。 – ergen

+1

これは良い@ergenだ。一時的な回避策だ。次のリリースで[#5005](https://github.com/aspnet/Mvc/issues/5005)を修正する予定です。 – Doug

関連する問題