컨트롤러로 초기화되고 채워진 SelectList를 가져 오는 MVC에 DropDownList가 있습니다. 목록에있는 특정 페이지의 목표는 새로 고치지 않고 "Ajax를 사용하여 사용자에게 즉시 옵션 X를 선택했습니다"라고 응답하는 것입니다.AJAX에 의해 캐시 된 SelectList
내가 겪고있는 문제는 드롭 다운이 제대로 렌더링되고 올바르게 다시 게시되는 동안 새로운 옵션을 추가하거나 이전 응답 메시지를 수정하려는 시도가 헛된 것입니다.
내보기 :
<script type="text/javascript" src="../../Scripts/MicrosoftAjax.js"></script>
<script type="text/javascript" src="../../Scripts/MicrosoftMvcAjax.js"></script>
<h2>Configuration</h2>
<% Using (Ajax.BeginForm("HandleConfigForm", New AjaxOptions With {.UpdateTargetId = "ConfigResults"}))%>
Select the config file you wish to view: <%= Html.DropDownList("cprotocols")%>
<br /><br />
<input type="submit" value="Submit" />
<br />
<br />
<span id="ConfigResults"></span>
<% End Using%>
내 컨트롤러 :
이Function Configuration() As ActionResult
Dim configList As List(Of String) = New List(Of String)
configList.Add("A")
configList.Add("B")
configList.Add("C")
configList.Add("D")
configList.Add("test")
ViewData("cprotocols") = New SelectList(configList)
Return View()
End Function
Function HandleConfigForm(ByVal cprotocols As String) As String
Select Case cprotocols
Case "A"
Return "You picked: dat option"
Case "B"
Return "You picked: dat option B"
Case "C"
Return "You picked: wat even is C"
Case "D"
Return "You picked: choice D"
Case "test"
Return "cache"
End Select
Return [String].Empty
End Function
이전에 내 코드도 Configuration()
도 HandleConfigForm())
에 ("test"
을 가지고 있지 않았고, 또한, 경우에는 "A"에 사용되는 주석이 말을 "dat option A"
내 사이트를로드 할 때 드롭 다운 목록에는 A부터 D까지의 옵션이 표시되지만 테스트는 수행되지 않습니다. 어는 "dat option"
이 아닌 "dat option A"
을 다시 게시하는 것을 제외하고 적절한 메시지를 제공합니다.
어떻게 든 내 기능이 손상되어 브라우저가 Javascript에 의해로드 된 이전 데이터를 캐싱하고 있다는 것 외에 어떤 현상이 일어나는지 전혀 알지 못합니다. configList에 추가하고 Select 스위치에서 반환 값을 변경하는 것 외에 다른 코드를 수정하지 않았으므로 잘못 될 수있는 내용을 볼 수 없습니다.
아이디어가 있으십니까?