【问题标题】:Javascript var inside a c# function inside JavascriptJavascript 中的 c# 函数中的 Javascript var
【发布时间】:2012-02-06 15:35:07
【问题描述】:

我正在尝试编写一个调用字典值的 javascript 函数,然后尝试将其拆分为“_”。问题是从 Dictionary 获取值的键位于从下拉列表中提取的 Javascript var 中。是否可以在 Javascript 中的 c# 函数中使用 Javascript var?

现在的代码:

var Category = document.getElementById('Properties').value;
var Name = document.getElementById(Category).value;
Category = '@Model.Dictionary[Name].Split('_')[0]';

编辑:

人们误解了我的问题,.Split 函数确实有效,但 Dictionary[Name] 给我带来了问题。如果我输入

var Category = document.getElementById('Properties').value;
var Name = document.getElementById(Category).value;
Category = '@Model.Dictionary["Bicycle"].Split('_')[0]';

在代码中完美运行,但我想从 DropDownList 中动态获取“自行车”部分。

编辑 2:

好的,我已经决定,我想太多了,我正在尝试做的事情比实际需要的要多得多,找到了更好的解决方案,感谢所有试图帮助我的人。

【问题讨论】:

    标签: c# javascript razor asp.net-mvc-4


    【解决方案1】:

    您在客户端和服务器端之间有点混淆。要像这样与服务器端代码交互,您需要发布到服务器或编写 AJAX 回调来调用服务器方法。

    http://mikehadlow.blogspot.com/2008/10/mvc-framework-and-jquery-ajax-heaven.html

    【讨论】:

    • 这似乎是 .NET 开发人员经常遇到的问题。什么给了?
    • @Diodeus:部分问题可以归咎于 ASP.NET 页面模型,它尽最大努力隐藏 Web 的无状态特性。
    • Web 表单破坏了人们的逻辑大脑。内联 javascript、css 和样式很普遍,人们认为它可以双向使用。虽然看他的例子,但看起来他确实想为 javascript 分配一个 C# 值,这是可能的,但维护起来又丑陋又可怕。我真希望你不能。
    【解决方案2】:

    不,这是不可能的。所有服务器代码在页面发送到浏览器之前运行,所有客户端代码在页面发送之后运行。

    要在客户端代码中使用字典,您必须从服务器端创建 Javascript 代码,从而在客户端重新创建字典。

    如果这不可能,您将不得不对服务器进行 AJAX 调用。

    【讨论】:

      【解决方案3】:

      通过让 DropDownList 在 Value 和 Text 中具有不同的值,我完全避免了这个问题,这样做可以在不更改 Text 的情况下从 DropDownList 的 Value 中获取曾经在 Dictionary 中的所需输入。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-07-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-20
        • 2012-01-17
        相关资源
        最近更新 更多