![](/img/trans.png)
[英]ASP.net Razor MVC5 insert @{} inside javascript within my cshtml page
[英]Using Javascript if else inside MVC .cshtml page
有没有办法在MVC cshtml页面中使用if else语句
<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
块的比较。 您应该使用jQuery.append()
将它放在<script>
,以将正确的标签附加到目标元素中:
<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
}
您不能直接在 razor 中使用 javascript 函数..所以最好使用 Request .Browser 来获取浏览器名称
@{bool IsIE = false ;
if (Request.Browser.Type.ToUpper().Contains("IE"))
{
IsIE = true;
}
}
@if (IsIE)
{
// Your Razor here
}
else
{
// Your Razor here
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.