0

我工作的一個網站,該網站在一個ASCX頁面下面的代碼上:ASP.NET MVC錯誤長度不能小於零。參數名稱:長度。使用IE 8兼容性視圖在

<%Using (Html.BeginForm("MakeABooking", "User", FormMethod.Post))%> 
<button type="submit" class="searchCarButton JQryStyleButton" name="btnSubmit" value="1; <%:DataBinder.Eval(c.DataItem, "currentAsset.AssetID").ToString %>; <%:DataBinder.Eval(c.DataItem, "SearchForDate").ToString %>">Make Booking</button> 
<%End Using%> 

這種形式要求在視圖控制器的MakeABooking功能:

<HttpPost()> _ 
    <ValidateInput(False)> _ 
    Public Function MakeABooking(btnSubmit As String) As ActionResult 
     Dim sMan As String = btnSubmit 
     Dim sSegmentBooked As String = sMan.Substring(0, sMan.IndexOf(";")) 
     sMan = sMan.Substring(sMan.IndexOf(";") + 1) 
     Dim sAsseID As String = sMan.Substring(0, sMan.IndexOf(";")) 
     Dim sDateBook As String = sMan.Substring(sMan.IndexOf(";") + 1) 

     Dim BookingModel As New BookingViewModel(CInt(sAsseID), CInt(sSegmentBooked), CDate(sDateBook)) 
     Return View("MakeABooking", BookingModel) 
    End Function 

在打開兼容性視圖的情況下使用Internet Explorer 8時,出現以下錯誤長度不能小於零。參數名稱:長度。

但是,兼容性視圖關閉時,它工作正常,但這導致我正在工作的網站上的其他ui-selector控件無法正常工作(jQuery控件)的另一個問題。

我們創建本網站的客戶端使用Windows XP和Internet Explorer 8,因此需要修復Internet Explorer 8的問題,因爲他們不願意使用Google Chrome或Firefox等其他瀏覽器,我們的網站工作正常。

我已經設法使用兼容性模式上的Windows 7 IE 9複製問題,並傳遞到MakeABooking函數,即btnSubmit字符串值是「<SPAN class=ui-button-text>Make Booking</SPAN>」,而傳遞的字符串應該是這樣的「1 ; 8463; 2012年12月9日中午12:00:00「,因爲MakeABooking函數正在尋找分號,因此我得到了這個錯誤。有誰知道爲什麼我得到字符串<SPAN class=ui-button-text>Make Booking</SPAN>,而不是我所期望的前面提到的?

如果我能得到任何幫助,將不勝感激。

+0

哪一行給出錯誤?你有沒有在動作方法中檢查btnSubmit的值? –

+0

我懷疑IndexOf在找不到「;」時返回-1; – LeffeBrune

+0

感謝迄今爲止的迴應 - 但我相信,當IE 8兼容模式開啓時,沒有任何東西作爲字符串變量傳遞到MakeABooking函數中,因此出現錯誤。然而,我還沒有能夠使用IE 8進行調試,因爲我的開發環境中沒有這個設置,但也許這是我可能需要做的事情? – user1522318

回答

0

感謝hagensoft,在右邊的aspx頁面添加了以下額外的代碼修復了這個問題。

<asp:Content ID="Meta" ContentPlaceHolderID="MetaContent" runat="server"> 
    <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" /> 
</asp:Content> 

我還需要在標記的Site.Master頁面中添加以下代碼行。

<asp:ContentPlaceHolder ID="MetaContent" runat="server" /> 
相關問題