MVC 编辑器模板中的 JavaScript 无法正确呈现



我正在将一些控件从视图移动到编辑器。在我的编辑器中,我有这个隐藏:

@Html.HiddenFor(m => m.EmailDataVariables)

我有一些 javascript 试图阅读它(这在我的原始页面中有效,但在视图中无效):

var myValue = document.getElementById('EmailDataVariables').value;

HiddenFor渲染如下(这破坏了上面的JavaScript):

<input id="EmailTemplate_EmailDataVariables" 
    name="EmailTemplate.EmailDataVariables" 
    type="hidden" 
    value="myData">

我是否应该假设控件将始终命名为 EmailTemplate.EmailDataVariables 并像这样编写我的 JavaScript:

var myValue = document.getElementById('EmailTemplate.EmailDataVariables').value;

还是有更好的方法来解决这个问题?

您有两个选择。

1) 假设 ID 将始终EmailTemplate_EmailDataVariables并相应地更新您的 JS。

2)给它一个你永远知道的唯一ID。

@Html.HiddenFor(m => m.EmailDataVariables, new {id = "EmailDataVariables"})

最新更新