Asp.net mvc AJAX缓存的SelectList
我在MVC中有一个下拉列表,它获取一个由控制器初始化和填充的选择列表。该列表所在的特定页面的目标是在不刷新的情况下(使用Ajax)立即向用户回复“您选择了选项X” 我遇到的问题是,由于一些奇怪的原因,虽然下拉列表正确呈现,甚至可以正确发回,但添加新选项或修改以前的响应消息的任何尝试都是徒劳的 我的看法是:Asp.net mvc AJAX缓存的SelectList,asp.net-mvc,vb.net,drop-down-menu,Asp.net Mvc,Vb.net,Drop Down Menu,我在MVC中有一个下拉列表,它获取一个由控制器初始化和填充的选择列表。该列表所在的特定页面的目标是在不刷新的情况下(使用Ajax)立即向用户回复“您选择了选项X” 我遇到的问题是,由于一些奇怪的原因,虽然下拉列表正确呈现,甚至可以正确发回,但添加新选项或修改以前的响应消息的任何尝试都是徒劳的 我的看法是: <script type="text/javascript" src="../../Scripts/MicrosoftAjax.js"></script> &l
<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%>
以前我的代码没有“test”
(在Configuration()
和HandleConfigForm()中都没有)
;此外,在“A”情况下,注释用于表示“dat选项A”
当我加载我的站点时,下拉列表显示选项A到D,但没有测试。。。选择一封信会给出适当的信息,除了回发“dat选项a”
而不是新的“dat选项”
我完全不知道发生了什么,只是不知何故我的函数坏了,浏览器正在缓存Javascript加载的以前的数据。除了简单地添加到configList和更改Select开关中的返回值之外,我没有对代码进行任何其他更改,因此我看不出会出现什么问题
有什么想法吗?浏览器将缓存ajax调用的结果,就像缓存任何其他请求的结果一样 一种解决方案是向方法添加一个显式OutputCache指令,持续时间设置为0 jQuery使用的方法是将随机querystring参数附加到url 我从来没有使用过MicrosoftAjax,所以我不完全确定它是如何工作的
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