Я только что работал над аналогичной проблемой, когда мое меню показывает слово Expand
рядом с каждым статическим элементом и даже не отображает динамические элементы для моего подменю ... Действительно отстой.
К счастью, я нашел решение.
ASP.NET отображает элементы управления для обратной совместимости со старыми браузерами. Это означает, что иногда независимо от того, что мы делаем в нашем коде, ничто не исправит это.
В основном, вероятно, здесь происходит то, что ASP.NET принимает Chrome за другой браузер, который не имеет большой поддержки элемента управления Menu и неправильно его отображает.
То, что я сделал, чтобы исправить это, состоит из 2 частей. Я не уверен, нужно ли вам применять их все или нет для исправления, но мое меню теперь отображается именно так, как я хочу (за исключением нескольких настроек, которые мне нужно сделать с помощью CSS).
Надеюсь, это поможет:
ШАГ 1: Добавьте это в файл кода для вашей мастер-страницы
[VB]
Protected Sub Page_PreInit(ByVal sender As Object, ByVal e As System.EventArgs)
If Request.ServerVariables("HTTP_USER_AGENT").IndexOf("Safari", StringComparison.CurrentCultureIgnoreCase) <> -1 Then
Page.ClientTarget = "uplevel"
End If
If Request.UserAgent.Contains("AppleWebKit") Then
Request.Browser.Adapters.Clear()
End If
End Sub
ШАГ 2: Создание нового файла браузера
1. Создайте новую папку App_Browsers
на своем сайте
2. Добавьте новый файл Браузеров в папку и назовите его Chrome.browsers
3. Закомментируйте все материалы по умолчанию и добавьте следующее:
<browsers>
<browser refID="safari1plus">
<controlAdapters>
<adapter controlType="System.Web.UI.WebControls.Menu" adapterType="" />
</controlAdapters>
</browser>
</browsers>