我可以将JavaScript变量传递给内联ASP.NET代码吗?
问题描述:
我发现了无数的关于将“代码隐藏”变量传递给Javascript的例子和文章,但我想知道是否有办法做相反的事情。我可以将JavaScript变量传递给内联ASP.NET代码吗?
在我看来,我试图动态创建一个使用ASP辅助类和从JavaScript变量的Url。我想要做的是一样的东西:
var url = '@Url.Action("' + actionname + '", "controller")';
...其中actionname
被一些其他的逻辑预定。这是行不通的,因为我不能像这样分解内联代码。
其他人以前是否尝试过这样做或有任何想法?
谢谢!
答
如果actionname
是一个JavaScript变量,则不能这样做:@Url.Action
方法在返回给客户端之前在服务器端执行。因此,在客户端上执行的JavaScript无法将信息发送到@Url.Action
调用中。
如果仍然如此,您可以将actionname
作为arg传递给Action,该Action确定将路由到何处。
+1
谢谢,当您考虑执行代码的位置时,这会更有意义。 – Paul 2012-03-06 16:09:16
答
这很混乱,但我有时使用HiddenField
来传递一个值。
ASP:
<asp:HiddenField id="hfStuff" runat="server" />
的jQuery:
$("#<%= hfStuff.ClientID %>").val("my value");
然后你可以从代码隐藏访问hfStuff.Value
。
就像我说的,凌乱,但有时候完成工作。
这是不可能的。 Javascript变量只存在于客户端上。 – SLaks 2012-03-06 16:02:27