我工作的一個網站,該網站在一個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>
」,而不是我所期望的前面提到的?
如果我能得到任何幫助,將不勝感激。
哪一行給出錯誤?你有沒有在動作方法中檢查btnSubmit的值? –
我懷疑IndexOf在找不到「;」時返回-1; – LeffeBrune
感謝迄今爲止的迴應 - 但我相信,當IE 8兼容模式開啓時,沒有任何東西作爲字符串變量傳遞到MakeABooking函數中,因此出現錯誤。然而,我還沒有能夠使用IE 8進行調試,因爲我的開發環境中沒有這個設置,但也許這是我可能需要做的事情? – user1522318