服务器端预渲染期间无法发出C#ASP.NET Core MVC JavaScript互操作调用

问题描述

我的完整错误是“服务器端预渲染期间无法发出JavaScript互操作调用,因为该页面尚未加载到浏览器中。 预渲染的组件必须将所有JavaScript互操作调用包装在条件逻辑中,以确保在预渲染过程中不尝试这些互操作调用。”

如何克服此错误?我正在Visual Studio中使用ASP.NET Core应用程序,我的UI在另一个项目中调用API方法来验证用户身份。

UI-Login / Index.cshtml

@using (Html.BeginForm("UserLogin","Login",FormMethod.Post,new { id = "loginForm" }))
        {
            <div class="card">
                <div width: 50%; margin: 0 auto;>
                    <img src="~/img/shopkin.jpg" alt="" class="d-block ml-n3 mb-5" style="max-height: 310px; max-width: 100px;" />
                </div>
                <h4 class="card-header">Stacys Treat Boutique Customer Order System</h4>
                <div class="card-body">
                    <div class="form-group">
                        <label>Username</label>
                        @Html.TextBoxFor(model => model.Email,new { @class = "form-control" })
                    </div>
                    <div class="form-group">
                        <label>Password</label>
                        @Html.TextBoxFor(model => model.Password,new { @type = "password",@class = "form-control" })
                    </div>
                    <input type="submit" class="btn btn-primary" id="loginBtn" value="Login">
                </div>
            </div>
        }

LoginController-/控制器/LoginController.cs

 public IActionResult Index()
        {

            return View();
        }

        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult UserLogin(User currentUser)
        {
            // Check the users credentials
            _authenticationService.Login(currentUser.Email,currentUser.Password);

            if (true == _authenticationService.User.Isverified)
            {
                // Send the authenticated user to the Dashboard
                return View("~/Views/Dashboard/Index.cshtml");
            }
            else
            {
                // Show login error
                return View();
            }
        }

Service-Services / AuthenticationService.cs

public async Task Login(string username,string password)
        {
            User = await _httpService.Post<User>(_appSettings.AuthAPIURL + "/authenticate",new { username,password });
            await _localStorageService.SetItem("user",User);
        }

在服务中发布信息时出现错误。在使用Core之前,我在以前版本的ASP.NET MVC应用程序中都没有这个问题

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)