Есть ли способ использовать if else statment внутри страницы MVC cshtml
<div class="primary-content">
if(DetectIE())
{
<embed data-bind="attr: { src: data.files()[currentPage()] + '#toolbar=0&navpanes=0&scrollbar=0' }" type="application/pdf" style="width: 100%; height: 800px !important;">
}
else
{
<object data-bind="attr: { data: data.files()[currentPage()] + '#toolbar=0&navpanes=0&scrollbar=0' }" type="application/pdf" width="100%" height="600px"></object>
}
</div>
У меня есть код javascript, чтобы определить, является ли текущий браузер Internet Explorer или нет. Если это IE, то используется тег <embed>
иначе используется тег <object>
.
Любые предложения или помощь будут оценены.
заранее спасибо
Поскольку DetectIE()
является функцией JS, вы не можете использовать ее для сравнения с блоком Razor @if
. Вы должны поместить его внутри <script>
с помощью jQuery.append()
чтобы добавить соответствующий тег в целевой элемент:
<script>
$(function() {
// other stuff
if (DetectIE())
{
$('#targetElement').append("<embed data-bind=\"attr: { src: data.files()[currentPage()] + '#toolbar=0&navpanes=0&scrollbar=0' }\" type=\"application/pdf\" style=\"width: 100%; height: 800px !important;\">");
}
else
{
$('#targetElement').append("<object data-bind=\"attr: { data: data.files()[currentPage()] + '#toolbar=0&navpanes=0&scrollbar=0' }\" type=\"application/pdf\" width=\"100%\" height=\"600px\"></object>");
}
});
</script>
Пример целевого элемента:
<div id="targetElement" class="primary-content"></div>
Если вы хотите проверить любую версию IE со стороны контроллера, вы можете использовать это:
bool isIE = (Request.Browser.Browser == "IE" || Request.Browser.Browser == "InternetExplorer");
Затем передайте значение ViewBag
:
ViewBag.IsIE = isIE;
Пример использования JS
if (@ViewBag.IsIE)
{
// render embed tag
}
else
{
// render object tag
}
Вы не можете использовать функцию javascript внутри razor напрямую. Так что bettter использует Request.Browser для получения имени пользователя
@{bool IsIE = false ;
if (Request.Browser.Type.ToUpper().Contains("IE"))
{
IsIE = true;
}
}
@if (IsIE)
{
// Your Razor here
}
else
{
// Your Razor here
}
@if (DetectIE()) { // embed tag } else { // object tag }
. Но чтоDetectIE()
?