根据下拉列表更新EditorFor:是否有任何方法可以在MVC4上的HTML助手中使用JavaScript变量?

根据下拉列表更新EditorFor:是否有任何方法可以在MVC4上的HTML助手中使用JavaScript变量?,javascript,asp.net-mvc,razor,asp.net-mvc-4,Javascript,Asp.net Mvc,Razor,Asp.net Mvc 4,我的视图中有一个模型属性(货币)的下拉列表,我已经将JavaScript onchange函数与之关联 此函数的目标是根据模型中的字典属性(将货币映射到其汇率)更新其他一些字段的(汇率)值 @Html.DropDownListFor(model=>model.Currency,新选择列表(ViewBag.CurrencyList,“Code”,“Code”),新{onchange=“update(this)”}) @Html.ValidationMessageFor(model=>model.

我的视图中有一个模型属性(货币)的下拉列表,我已经将JavaScript onchange函数与之关联

此函数的目标是根据模型中的字典属性(将货币映射到其汇率)更新其他一些字段的(汇率)值


@Html.DropDownListFor(model=>model.Currency,新选择列表(ViewBag.CurrencyList,“Code”,“Code”),新{onchange=“update(this)”})
@Html.ValidationMessageFor(model=>model.Currency)
功能更新(elem){
//警报(“货币已更改!”)
document.getElementById(“@Html.IdFor(model=>model.Rate)”)。value='@model.currences[]'
}
我希望“我希望我可以把一个JS变量放在这里”是elem.value,但是我得到了一个语法错误,因为JS变量被解释为一个文本。 我似乎无法调用包含Javascript值的HTML助手

我的目标是根据组合框中选择的值更新EditorFor字段。但我的方法可能有问题


任何帮助都将不胜感激。

你想得不对。HTML、CSS和JavaScript是ASP.NET MVC web应用程序项目的输出。JavaScript不能像上面尝试的那样影响web应用程序。MVCWeb应用程序和JavaScript之间没有实时连接,JavaScript会以某种方式神奇地相互响应


为了实现这一点,我将把
@Modal.currences
中的值放在某种JavaScript数组中。然后使用该数组定位更新元素所需的值(使用JavaScript变量)。

正如我在评论中所说的,我的方法根本没有意义,因为我将服务器端代码与客户端代码混合在一起

我在函数更新(elem)中使用ajax检索正确的值并更新相应的字段:

$.ajax({
                type: "GET",
                url: "Currency?code=" + elem.value,
                success: function (msg) {
                    document.getElementById(RateId).value = msg;
                }
});

我希望这会对将来的人有所帮助。干杯。

读一个类似的问题(对不起,我在发布这个问题之前没有看到):我的方法没有意义,因为我把服务器端代码和客户端代码混合在一起。为了记录,我使用ajax检索正确的值并更新相应的字段。我无法在答案中发布我的代码,因为我没有足够的rep,但我的解决方案与另一个问题中的类似。我最终使用ajax调用检索所需的值并更新字段。无论如何,谢谢你的回答=)
$.ajax({
                type: "GET",
                url: "Currency?code=" + elem.value,
                success: function (msg) {
                    document.getElementById(RateId).value = msg;
                }
});