我找到了无数关于将“代码隐藏”变量传递给Javascript的示例和帖子,但我想知道是否有办法做相反的事情。
在我看来,我正在尝试使用ASP助手类和javascript变量动态创建一个Url。我想做的是:
var url = '@Url.Action("' + actionname + '", "controller")';
...其中actionname
由其他逻辑预先确定。这不起作用,因为我不能像这样分解内联代码。
其他人之前是否曾试图做过这样的事情或有任何想法?
谢谢!
答案 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。