Javascript 无法通过<;%%访问JS/jQuery中的变量变量%>;
我正在尝试从JavaScript/jQuery访问asp.net变量(c#) 我找到了一个解决办法,而且。但不幸的是,这些都不适合我 这里有一个片段:Javascript 无法通过<;%%访问JS/jQuery中的变量变量%>;,javascript,c#,jquery,asp.net,Javascript,C#,Jquery,Asp.net,我正在尝试从JavaScript/jQuery访问asp.net变量(c#) 我找到了一个解决办法,而且。但不幸的是,这些都不适合我 这里有一个片段: Default.aspx.cs public partial class Default : System.Web.UI.Page { public string CurrentUser { get; set; } protected void Page_Load(object sender, EventArgs e) {
Default.aspx.cs
public partial class Default : System.Web.UI.Page
{
public string CurrentUser { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
CurrentUser = User.Identity.Name.Split('\\')[1]; //I need the value of "CurrentUser"
}
...
}
$(document).ready(function (){
var _currentUser = "<% =CurrentUser %>"; // e.g. _currentUser = "minimen"
...
});
script.js
public partial class Default : System.Web.UI.Page
{
public string CurrentUser { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
CurrentUser = User.Identity.Name.Split('\\')[1]; //I need the value of "CurrentUser"
}
...
}
$(document).ready(function (){
var _currentUser = "<% =CurrentUser %>"; // e.g. _currentUser = "minimen"
...
});
$(文档).ready(函数(){
var _currentUser=“”;//例如_currentUser=“minimen”
...
});
_currentUser的值始终为“”
有什么想法吗?C#JS文件中的代码不会被执行-因此该值保持为
。要按照您的要求执行,您需要:
- 在ASPX页面中执行此JS代码
- 从返回所需信息的JS文件向服务器发出AJAX请求
type=“hidden”
或将数据-
属性值注入关键DOM元素(如body
)。您可以非常简单地从JavaScript/jQuery中获取它们:
1.隐藏字段
e、 g.对于带有id=“currentuser”
HTML:
2. <代码>数据-属性
或者将该值作为data-
属性添加到关键DOM元素上,例如body
元素上
HTML:
3.在页面中注入全局变量
最糟糕的情况是,在页面顶部有一小段Javascript注入全局变量值:
HTML:
我在Razor布局文件中使用最后一种技术只是为了一个简单的目的。在当前网站上注入站点根URL,以便可用于任何相关Ajax调用:
e、 g.在Razor布局文件中
<script>
window.siteRoot="@Url.Content("~/")";
</script>
window.siteRoot=“@Url.Content(~/”);
@greg这不是问题所在
$(document).ready(function (){
var _currentUser = $('body').data('currentuser');
...
});
<script>
window.currentuser="<% =CurrentUser %>";
</script>
$(document).ready(function (){
var _currentUser = window.currentuser; // or just currentuser
...
});
<script>
window.siteRoot="@Url.Content("~/")";
</script>