将Razor代码分配给JavaScript变量时出现意外的标记ILLEGAL

时间:2016-03-13 06:53:31

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

我使用JavaScript使用ASP .NET MVC的Razor语法动态地向表添加行。将文本框分配给变量工作正常但是,当我想分配一个下拉列表时,它会抛出一个错误 - “意外的非法令牌”。

   var expH = '@Html.DropDownList("TransDebit[{id}].Expenditure_Head",new SelectList(ViewBag.ExpCodes,"Expenditure_Code","Expenditure_Code"))';

转换为(从chrome控制台看到):

var expH = '<select id="TransDebit__id___Expenditure_Head" name="TransDebit[{id}].Expenditure_Head"><option value="313">313</option>
<option value="414">414</option>
</select>';

这正是我想要的,但为什么会抛出错误?我看不出有什么不妥。 请帮忙。 谢谢。 编辑1:SCREENSHOT
enter image description here

1 个答案:

答案 0 :(得分:0)

感谢Stephen,我终于找到了解决办法。我所做的只是为这个变量创建一个隐藏的div:

<div id="NewDebit" style="display:none">

 @Html.DropDownList("TransDebit[{id}].Expenditure_Head", new SelectList(ViewBag.ExpCodes, "Expenditure_Code", "Expenditure_Code"),"Select Expenditure Code")

</div>

和我的java脚本代码:

var ExpH = document.getElementById("NewDebit").innerHTML;

这很好用,我认为由于某些字符转义问题可能会出现错误。