MVC 3 - HTML.Editorfor, кажется, кэширует старые значения после вызова $ .ajax

Это следующее из следующего вопроса:

MVC 3 + $ .ajax - реакция, кажется, кэширует вывод из частичного просмотра

, есть подробное описание проблемы там. Тем не менее, теперь мне удалось сузить проблему, что, кажется, со помощниками HTML.Editorlor, следовательно, новый вопрос.

Вопрос:

Я публикую данные на сервер, используя $ .ajax, а затем вернуть HTML частичного представления, который содержит элементы управления входным элементом. Проблема в том, что, несмотря на передачу вновь созданного объекта к модели частичных просмотров, различные @ html.editoryfor и @ html.dropdownlistclor and @ html.dropdownlistclor.

Я могу доказать, что модель правильно передала в новом объекте к помощникам, путем печати значения рядом с HTML-помощником. IE:

@Html.EditorFor(model => model.Transaction.TransactionDate) 
@Model.Transaction.TransactionDate.ToString()

Как показывает следующие изображения, @ html.editorfor возвращает неправильные данные:

Cached response...

[Обратите внимание, что значение рядом с текстовым ящиком Comentario - это время дата, поскольку я тестировал, заменяя значения значения по умолчанию со значением, которое изменяется с каждым постом, т. Е. DateTime.]

, если я заменил @ HTML.Editorfor для транзационногоddate с простым старым @ html.textbox ():

@Html.TextBox("Transaction_TransactionDate", Model.Transaction.TransactionDate)

затем он отображает правильное значение транзакции для новой цели транзакции, т. Е. DateTime.minvalue (01/01/0001 ...).

Следовательно, ...

Проблема с помощью помощников @ html.editorlors. Проблема также происходит с TextBoxFor и DropDownlistFor.

Проблема, являющаяся тем, что эти помощники, кажется, кэшируют старое значение.

Что я делаю не так ??!

Отредактируйте:

Я только что попытался отладовать в шаблоне пользовательских редактора для дат, а также там, viewdata.templateInfo.formattedModelvalue показывает правильное значение, т. Е. "01/01/0001". Однако после того, как он попадет в Fiddler, ответ показывает старую дату, например, «01/09/2011» на изображении выше.

В результате я просто думаю, что здесь происходит некоторая кэширование, но у меня нет ничего, поэтому ничто не имеет никакого смысла.

42
задан Community 23 May 2017 в 12:26
поделиться