问题描述
我的完整错误是“服务器端预渲染期间无法发出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 (将#修改为@)