1

ASP.net MVC プロジェクトで奇妙な問題に遭遇しました。

次のコードは、Firefox、Chrome、Safari IE8 で正常に動作しますが、IE7 互換モードでは IE8 では動作しません。

<%  Using Ajax.BeginForm("SetStatus", "StatusControl", New AjaxOptions With {.Confirm = "Are you sure you wish to change the Status?", .OnBegin = "Show_Updating", .OnComplete = "Hide_Updating"})%>
    <%=Html.Hidden("ItemID")%>
    <select id="SelectStatus" name="SelectStatus">
        <option selected="selected">Active</option>
        <option>Disable</option>
    </select>
    <input type="submit" value="OK" title="Set Status" class="small_button" />
<% End Using%>

SetStatus メソッドにブレーク ポイントを設定すると、フォーム コレクションに SelectStatus と ItemID がリストされます。SelectStatus は、"Active" または "Disable" ではなく "" に解決されます。他のすべてのブラウザーでは、これは正しく解決されます。

何が起こっているのですか?IE-8 RC1 を使用しています。

以下は SetStatus コントロール メソッドです。

<AcceptVerbs(HttpVerbs.Post)> _
 Function SetStatus(ByVal form As FormCollection)
    Dim status = form("SelectStatus")

    Select Case status
        Case "Active"
            Dim ItemID As Integer = form("ItemID")
            Return Restore(ItemID)
        Case "Disable"
            Dim ItemID As Integer = form("ItemID")
            Return Disable(ItemID)
    End Select

    Return Content("Errors")
End Function
4

1 に答える 1

2

オプションに明示的な値を設定してみてください

<option value="Active" selected="selected">Active</option>
<option value="Disable">Disable</option>
于 2009-03-03T03:02:21.510 に答える