2016-05-29 2 views
2

Я работаю с visual studio 2015 и aspnetcore rc2. Я использую @html.antiforgerytoken() в каждой форме для публикации. Но mvc 6 создает первый и удаляет (или игнорирует, может быть) другие. Я пробовал это с masterview и без хозяина, никакого результата. Я думаю, что у меня есть ошибка где-то, а где? Я очистил историю браузера и создал простой пустой проект asp.net с одним представлением и одним контроллером, снова попробовал и никакого результата снова.mvc 6 генерирует antiforgerytoken только один раз

Вот скриншоты.

enter image description here выход enter image description here Я не использую @addtaghelper или какие-либо другие похожи расширений, я просто использовать @html.antiforgerytoken.

+0

я использовать этот стиль в настоящее время, это является частным решением, а не ответом: @ {if (viewdata ["token"] == null) {html.antiforgerytoken();}} и @viewdata ["token"] внутри формы. – ergen

ответ

1

САШ репо Github/MVC есть куча вопросов о нескольких AntiForgeryToken вызовов: #319, #4595, #4924. Похоже, что текущее поведение является «эффектом» предыдущей ошибки. Открыт #5005.

В настоящее время (по состоянию на 1.0.0 RTM) мы имеем Обходной путь: сохранить сгенерированный маркер переменных и запись эти переменные несколько раз:

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

Обновление: Выпуска #5005 подтвержден как ошибка, запланированный на 1.1.0 milestone.

+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