【问题标题】:Can I pass a javascript variable to inline ASP.NET code?我可以将 javascript 变量传递给内联 ASP.NET 代码吗?
【发布时间】:2012-03-06 15:59:43
【问题描述】:

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

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

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

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

有其他人之前尝试过这样做或有任何想法吗?

谢谢!

【问题讨论】:

  • 那是不可能的。 Javascript变量只存在于客户端。

标签: javascript asp.net razor


【解决方案1】:

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

平均售价:

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

jQuery:

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

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

就像我说的,杂乱无章,但有时可以完成工作。

【讨论】:

    【解决方案2】:

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

    如果仍然是这种情况,您可以将 actionname 作为 arg 传递给决定将其路由到何处的 Action。

    【讨论】:

    • 谢谢,当您考虑代码的执行位置时,这会更有意义。
    猜你喜欢
    • 1970-01-01
    • 2019-09-24
    • 2018-01-09
    • 1970-01-01
    • 2015-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多