我有一个相当简单的问题,似乎无法解决。
我有一个javascript代码块;
<script>
var user = {
id: 1,
username: 'myname'
};
window.location.href = '<%# Page.GetRouteUrl("member", New With {.member = --username--})%>';
</script>
在上面的代码中,我需要用我的javascript对象中的user.username替换--username-- ..如果你能帮助我完成这个,我将不胜感激。
修改
我无法从服务器端获取用户名,因为用户名是来自facebook的用户名,我使用javascript API获取...
答案 0 :(得分:1)
您应该在服务器端使用一些占位符作为用户名,并在客户端使用真实用户名替换它:
<script>
var user = {
id: 1,
username: 'myname'
};
window.location.href = '<%# Page.GetRouteUrl("member", New With {.member = "__USERNAME__"})%>'.replace('__USERNAME__', user.username);
</script>
答案 1 :(得分:0)
类似的东西:
window.location.href = '<%# Page.GetRouteUrl("member", New With {.member = %>' + user.username + '<%})%>';
答案 2 :(得分:0)
只是你不能
<强>解释强> 在时间0:将在服务器端评估asp.net代码块
在时间1:评估的标记将被发送到客户端(将所有服务器端代码块转换为HTML)
在时间1.1:JavaScript将在浏览器上进行评估,因此您无法访问过去
黄金法则是:
e.g。将数据从服务器端传递到客户端
<div><asp:Literal runat="server" text="ServerSideVariableOnly" /></div>
OR
<script>
var pageurl = '<asp:Literal runat="server" text="AnotherServerSideVariable" />'
</script>
做你想做的事你有两个选择: