我的代码是:
@Html.Action("PartialViewName","ControllerName")
注意:在不传递res的情况下,需要来自node.js控制器的请求
当我添加此代码时:
<%
var result = [];
if(result.length>0)
{
//do nothing
}
else
{
//redirect page to "/product-not-found"
//window.location.replace("http://stackoverflow.com"); is not working
}
%>
对我不起作用。 告诉我错误:
window.location.replace("http://stackoverflow.com");
答案 0 :(得分:1)
这是您可以尝试的技巧
1-使用以下代码创建一个名为redirect.ejs的文件
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<meta name="robots" content="noindex, nofollow">
<meta http-equiv="refresh" content="1;url=<%= url %>">
<script type="text/javascript">
window.location.href = "google.com"
</script>
</head>
<body>
If you are not redirected automatically, <a href="<%= url %>">click here</a>.
</body>
</html>
2-像这样在您的代码中部分调用此文件
<%
var result = [];
if(result.length>0)
{
//do nothing
}
else
{
%>
<%- include('redirect.ejs')%>// redirect to
<%
}%>
让我知道它是否对您有用
答案 1 :(得分:0)
直到现在,我还没有找到一种从ejs页面重定向到另一个页面的方法,如果,您正在使用应该在该ejs页面中使用的可变数据。
所以我的解决方案是从服务器端重定向,而不是从客户端重定向。 在下面的示例中,有一个登录页面,登录页面成功登录后将呈现帐户页面,登录失败后将再次呈现登录页面。
文件:node.js
//Profile page
app.get('/account', function (req, res) {
if(req.session.user){
// user can access account page
let sess = req.session;
console.log(sess);
res.render('account', {user: sess.user});
}
else{
// user cannot access account page
// -> display again the login page
res.render('login');
}
});
答案 2 :(得分:0)
我可能聚会晚了,但是我遇到了这个问题,这就是我解决的方法:
<% if (yourBoolean) { %>
<script> document.location.href = '/your-redirect' </script>
<% } %>
通过 EJS通过脚本标签强制重定向,而不是通过 EJS进行重定向。
祝您编程愉快!