Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc AJAX缓存的SelectList_Asp.net Mvc_Vb.net_Drop Down Menu - Fatal编程技术网

Asp.net mvc AJAX缓存的SelectList

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

我在MVC中有一个下拉列表,它获取一个由控制器初始化和填充的选择列表。该列表所在的特定页面的目标是在不刷新的情况下(使用Ajax)立即向用户回复“您选择了选项X”

我遇到的问题是,由于一些奇怪的原因,虽然下拉列表正确呈现,甚至可以正确发回,但添加新选项或修改以前的响应消息的任何尝试都是徒劳的

我的看法是:

<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