我可以将javascript变量传递给内联ASP.NET代码吗?

时间:2012-03-06 15:59:43

标签: javascript asp.net razor

我找到了无数关于将“代码隐藏”变量传递给Javascript的示例和帖子,但我想知道是否有办法做相反的事情。

在我看来,我正在尝试使用ASP助手类和javascript变量动态创建一个Url。我想做的是:

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

...其中actionname由其他逻辑预先确定。这不起作用,因为我不能像这样分解内联代码。

其他人之前是否曾试图做过这样的事情或有任何想法?

谢谢!

2 个答案:

答案 0 :(得分:3)

这很麻烦,但我有时使用HiddenField传递一个值。

ASP:

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

jQuery的:

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

然后,您可以从代码隐藏中访问hfStuff.Value

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

答案 1 :(得分:1)

如果actionname是javascript变量,则无法执行此操作:@Url.Action方法在返回客户端之前在服务器端执行。因此,在客户端上执行的javascript无法将信息发送到@Url.Action调用。

如果仍然如此,您可以将actionname作为arg传递给确定将其路由到哪里的Action。