【问题标题】:Calling window.onload inside a cshtml view在 cshtml 视图中调用 window.onload
【发布时间】:2021-11-10 18:26:52
【问题描述】:

我正在尝试在 cshtml 视图中调用 window.onload 函数。

我的代码如下所示。

@model BusinessModel
    @if(Model.Business != null)
    {
        <script>
        window.onload = function () {
            if ('@Model.Business'!='') {
                var data = {
                //JSON Object
                };
                
                $.ajax({
                url: www.google.com,
                method: 'POST',
                headers:{},
                data : JSON.stringify(data),
                success: function (response){
                window.location.replace(new url);
                }
                
                });
                
                return false;
            }
        }
</script>
    } else {
         // Some basic HTML code
    }

当我尝试做这样的事情时,当条件匹配时它永远不会碰到 window.onload 函数。

我做错了什么还是需要以不同的方式处理? 请帮我解决这个问题

谢谢。

【问题讨论】:

  • 这段代码是否成功发送到浏览器?在浏览器中观察到的实际客户端代码是什么?什么时候在页面的上下文中发出这个?这部分是初始页面渲染还是稍后动态添加到页面?
  • 此代码已成功发送到 Web 浏览器,这不是初始页面呈现,但当用户选择选择时,用户将重定向到同一页面,它将检查条件并呈现差异内容在同一页面上。
  • "这不是初始页面渲染" - 那么这个 JavaScript 代码是 AJAX 响应的一部分,您希望页面在注入 DOM 时执行它?您如何获取此内容以及如何将其添加到 DOM?

标签: javascript jquery asp.net-core razor


【解决方案1】:

你可以尝试在js中检查Model.Business是否为null。这是一个演示:

型号:

public class BusinessModel
    {
        public List<Business> Business { get; set; }
       
    }

行动:

public IActionResult Test1()
        {
            var model = new BusinessModel { Business = new List<Business>() };
            return View(model);

        }

查看:

@model BusinessModel
@if (Model.Business == null)
{
    <h1>null</h1>
    // Some basic HTML code
}
<script>

        window.onload = function () {
            if ('@Model.Business'!='') {
                alert("Hello");
            }
        }

    </script>

结果:

【讨论】:

  • 这很好,但如果我做类似下面的事情它不起作用
  • 更新了我的代码,请检查
  • 你在控制台有什么错误,我调试它会去window.onload吗?你能成功地ajax发布数据吗?
猜你喜欢
  • 1970-01-01
  • 2012-06-18
  • 2012-03-29
  • 1970-01-01
  • 1970-01-01
  • 2012-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-03
相关资源
最近更新 更多