2012-03-06 127 views
2

我发现了无数的关于将“代码隐藏”变量传递给Javascript的例子和文章,但我想知道是否有办法做相反的事情。我可以将JavaScript变量传递给内联ASP.NET代码吗?

在我看来,我试图动态创建一个使用ASP辅助类和从JavaScript变量的Url。我想要做的是一样的东西:

var url = '@Url.Action("' + actionname + '", "controller")'; 

...其中actionname被一些其他的逻辑预定。这是行不通的,因为我不能像这样分解内联代码。

其他人以前是否尝试过这样做或有任何想法?

谢谢!

+1

这是不可能的。 Javascript变量只存在于客户端上。 – SLaks 2012-03-06 16:02:27

回答

1

如果actionname是一个JavaScript变量,则不能这样做:@Url.Action方法在返回给客户端之前在服务器端执行。因此,在客户端上执行的JavaScript无法将信息发送到@Url.Action调用中。

如果仍然如此,您可以将actionname作为arg传递给Action,该Action确定将路由到何处。

+1

谢谢,当您考虑执行代码的位置时,这会更有意义。 – Paul 2012-03-06 16:09:16

3

这很混乱,但我有时使用HiddenField来传递一个值。

ASP:

<asp:HiddenField id="hfStuff" runat="server" /> 

的jQuery:

$("#<%= hfStuff.ClientID %>").val("my value"); 

然后你可以从代码隐藏访问hfStuff.Value

就像我说的,凌乱,但有时候完成工作。

相关问题