Трапецеидальное искажение не было официально добавлено к хранилищу очарования амулета. Можно посмотреть здесь:
я шел вперед и открыл ошибку для получения очарования в хранилище, как это на самом деле было записано и существующее долгое время.
https://bugs.launchpad.net/charms / + ошибка/998241
можно использовать ту, предложенную там с
juju deploy cs:~charmers/precise/keystone
Согласно W3, вы должны использовать application / xhtml + xml
, а не text / xml
для обозначения XHTML:
http: / /www.w3.org/TR/2002/NOTE-xhtml-media-types-20020801/#text-xml
В статье выше также отмечается, что text / html
должен не ] для содержимого XHTML.
Вы можете посмотреть на свойства в Request.Browser
, понюхать IE таким образом и таким образом вернуть правильное представление, хотя это склонны к проблемам. Это не оптимально, потому что IE может поддерживать его в будущем.
public ActionResult MyAction() {
if (this.Request.Browser.Browser == "IE") {
return View("NonSVG");
} else {
return View("SVG");
}
}
Что-то, на что стоит обратить внимание, может быть эта страница на Codeplex . Они определяют свойство в браузере
под названием AcceptsImageSVG
, но похоже, что оно предназначено для мобильных браузеров, не знаю, можно ли его использовать в вашей ситуации.
Тип браузера можно определить с помощью объекта Request.Browser
См. Этот пример http://msdn.microsoft.com /en-us/library/system.web.configuration.httpcapabilitiesbase.type%28VS.80%29.aspx
Итак, вы могли бы сделать что-то вроде:
if( Request.Browser.Type.ToUpper().Contains("IE") )
{
// Return IE View
}
else
{
// Return the other view
}
Или, если вы используете это во многих местах, вы можете создать фабрика ViewResult, которая возвращает правильный результат просмотра в зависимости от типа браузера.
Что-то вроде хакерства, но ... Что, если бы SVG был во фрейме, фрейм рекламировал content-type = text / xml, а на содержащейся странице рекламировалось более подходящее приложение / xhtml + xml. Это делит проблему на две (возможно) более разрешимые.