如何解决服务器端预渲染期间无法发出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 举报,一经查实,本站将立刻删除。