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