Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery在Chrome上附加html时出现razor语法错误_Javascript_Jquery_Asp.net Mvc_Razor - Fatal编程技术网

Javascript jQuery在Chrome上附加html时出现razor语法错误

Javascript jQuery在Chrome上附加html时出现razor语法错误,javascript,jquery,asp.net-mvc,razor,Javascript,Jquery,Asp.net Mvc,Razor,我有以下javascript代码: var markup = '<tr id="newdo" class="odd"><td>' + @Html.DropDownList("does", new SelectList(Model.Does, "Id", "Name"),new { @class = "newDoSelect" }) + '</td><td class="small">'+ @Html.DropDownList("restrictio

我有以下javascript代码:

var markup = '<tr id="newdo" class="odd"><td>' + @Html.DropDownList("does", new SelectList(Model.Does, "Id", "Name"),new { @class = "newDoSelect" }) + '</td><td class="small">'+ @Html.DropDownList("restriction", Model.Restrictions) + '</td><td>' + @Html.ListBox("doobjectives", new MultiSelectList(Model.AllObjectives, "Id", "Name"), new { Multiple = "multiple", @class="doobjectives" }) + '</td><td></td></tr>';
$('#doList tr:last').after(markup);
var markup='+@Html.DropDownList(“does”、新的SelectList(Model.does、“Id”、“Name”)、新的{@class=“newDoSelect”})+'+@Html.DropDownList(“restriction”、Model.Restrictions)+'+@Html.ListBox(“doobjectives”、新的多选列表(Model.AllObjectives、“Id”、“Name”)、新的{Multiple=“Multiple”、@class=“doobjectives”})+;
$('doList tr:last')。在(标记)之后;
这是呈现的代码:

var markup = '<tr id="newdo" class="odd"><td>' + <select class="newDoSelect" id="does_3_" name="does[3]"><option value="319">A breath of fresh air..</option>
<option value="176">Fix something that&#39;s broken today!</option>
<option value="179">Get a physical &#39;high&#39; today!</option>
<option value="150">It&#39;s OK to be unassertive sometimes!</option>
<option value="169">Just &#39;let it wash&#39; today.</option>
<option value="200">WOW!</option>
<option value="233">Write something for 15 minutes.</option>
<option value="104">You CAN be individually-centred: try it today.</option>
<option value="111">You can be livelier: try this.</option>
<option value="77">You can be more definite in how you are.</option>
<option value="58">You don&#39;t always have to be unassertive!</option>
</select> + '</td><td class="small">'+ <select id="restriction_3_" name="restriction[3]"><option value="negative">negative</option>
<option value="neutral">neutral</option>
<option value="positive">positive</option>
</select> + '</td><td>' + <select Multiple="multiple" class="doobjectives" id="doobjectives_3_" multiple="multiple" name="doobjectives[3]"><option value="4">another test</option>
<option value="24">testing objective 10</option>
<option value="25">testing objective 11</option>
<option value="13">testing objective 2</option>
<option value="14">testing objective 3</option>
<option value="15">testing objective 4</option>
<option value="16">testing objective 5</option>
<option value="17">testing objective 7</option>
<option value="19">testing objective 8</option>
<option value="18">testing objective 9</option>
</select> + '</td><td></td></tr>';
$('#doList tr:last').after(markup);
var markup=''+呼吸一口新鲜空气。。
修复一些';它今天坏了!
体检';高';今天
它';It’有时候不自信也没关系!
只是';让它洗吧';今天
哇!
写15分钟的东西。
你可以以个人为中心:今天就试试。
你可以更活泼:试试这个。
你可以更明确地知道自己是怎样的人。
你没有';Don’不要总是不自信!
+''+负
中立的
积极的
+''+另一个测试
测试目标10
测试目标11
测试目标2
测试目标3
测试目标4
测试目标5
测试目标7
测试目标8
测试目标9
+ '';
$('doList tr:last')。在(标记)之后;
它在firefox上运行得很好,但在chrome上,我在第一行遇到了这个错误:

未捕获的语法错误:意外的标识符

有线索吗?

不要连接:

var markup = '<tr id="newdo" class="odd"><td>@Html.DropDownList("does", new SelectList(Model.Does, "Id", "Name"),new { @class = "newDoSelect" })</td><td class="small">@Html.DropDownList("restriction", Model.Restrictions)</td><td>@Html.ListBox("doobjectives", new MultiSelectList(Model.AllObjectives, "Id", "Name"), new { Multiple = "multiple", @class="doobjectives" })</td><td></td></tr>';
$('#doList tr:last').after(markup);
var markup='@Html.DropDownList(“does”,new SelectList(Model.does,“Id”,“Name”),new{@class=“newDoSelect”})@Html.DropDownList(“restriction”,Model.Restrictions)@Html.ListBox(“doobjectives”,new MultiSelectList(Model.AllObjectives,“Id”,“Name”),new{Multiple=“Multiple”,“@class=“doobjectives”});
$('doList tr:last')。在(标记)之后;

而且,这似乎是一种将客户端脚本与服务器端脚本混合使用的糟糕方式。为什么不直接在服务器上构建整个标记呢?

'+旧的标记,但找到了解决类似问题的不同方法

'<tr id="newdo" class="odd"><td>' + <select 
要从生成的对象中获取HTML,请执行以下操作:

 @Html.DropDownList("does", new SelectList(Model.Does, "Id", "Name"),new { @class = "newDoSelect" })
您可以使用
ToHtmlString()
方法,如下所示:

 @Html.DropDownList("does", new SelectList(Model.Does, "Id", "Name"),new { @class = "newDoSelect" }).ToHtmlString()

如果包含浏览器执行的实际Javascript,而不是生成大量HTML字符串的服务器端代码,可能会很有用。如果不连接,它根本不起作用,即使在firefox中也不行:Uncaught SyntaxError:意外标记,因为服务器端需要进行Javascript编码。如果服务器端标记生成危险字符,这将破坏javascript。这就是为什么我在回答中提到这样做不是一个好主意。