C# 如何";“预处理”;在显示mvc视图之前调用ajax?

C# 如何";“预处理”;在显示mvc视图之前调用ajax?,c#,ajax,model-view-controller,rest,C#,Ajax,Model View Controller,Rest,我对ajax不是很精通,所以我发现很难找到更好的答案。我已经尝试创建单独的“.js”文件,其中包含rest服务调用(用于验证用户会话),但它不起作用 我的目标是在加载视图之前验证用户会话(在MVC中)。使用数据库验证给定会话的逻辑的唯一方法是使用ajax通过url调用rest服务 此代码运行良好(在主视图内): 为什么不能使用服务器端的rest服务?从技术上讲,没有理由不这样做。下面是一个教程,详细讨论了: 那应该会处理好一切。如果出于某种原因,你不可能做到这一点,那么你可以做以下事情 使您的主

我对ajax不是很精通,所以我发现很难找到更好的答案。我已经尝试创建单独的“.js”文件,其中包含rest服务调用(用于验证用户会话),但它不起作用

我的目标是在加载视图之前验证用户会话(在MVC中)。使用数据库验证给定会话的逻辑的唯一方法是使用ajax通过url调用rest服务

此代码运行良好(在主视图内):

  • 为什么不能使用服务器端的rest服务?从技术上讲,没有理由不这样做。下面是一个教程,详细讨论了:
  • 那应该会处理好一切。如果出于某种原因,你不可能做到这一点,那么你可以做以下事情

  • 使您的主页成为局部视图

  • 不要加载主页,而是加载一个带有处理图标的空页面(或任何您想要显示的消息)

  • 与REST服务交谈,如果得到回复,则使用JQuery else加载注册部分视图加载主页的部分视图


  • 下面是一篇讨论如何使用JQuery加载MVC部分视图的文章:

    这是一篇好文章,但我必须在不刷新页面的情况下维护服务调用。我将尝试那种片面的观点。谢谢
    <script type="text/javascript">
        $(function () {
            $.get('@Url.Action("GetSession", "Auth")', function (getdata) {
                if (getdata.UserID && getdata.SessionID && getdata.SourceIP) {
                    $.post('http://website.com/Rest/Authenticate/ValidateUserSession', JSON.stringify(getdata), function (response) {
                        if (response == false) { window.location.replace('@Url.Action("SignUp", "Auth")'); }
                    });
                } else {
                    window.location.replace('@Url.Action("SignUp", "Auth")');
                }
            });
        });
    </script>
    <h2>
        Home</h2>
    
        @*The content here should not appear, unless session is validated.*@
    
    <script type="text/javascript">
        if(!validated()){
           window.location.replace('@Url.Action("SignUp", "Auth")');
        }
    </script>
    <h2>
        Home</h2>
    
        @*The content here should not appear, unless session is validated.*@