首先我想说我的代码运行良好,这更像是一个“如何做到最好”的问题。
所以我的 .aspx
中有这样的代码文件:
function EditRelationship() {
var projects=<%= GetProjectsForEditRelationship() %>;
// fill in the projects list
$('#erProjectsSelect').empty();
for(var i in projects)
$('#erProjectsSelect').append('<option value='+projects[i][0]+'>'+projects[i][1]+'</option>');
var rels=<%= GetRelationshipsForEditRelationship() %>;
// etc
}
同样,它工作正常。问题是 VS2008 有点像这样的代码窒息,它强调了 <
标签中的字符(带有相关警告),然后拒绝为其余的 javascript 提供代码完成。 它也拒绝再格式化我的文档,给出解析错误。最后一部分是我最大的烦恼。
我可以把其中一些放在 eval
中s 我猜,但添加额外的层和运行时性能命中只是为了关闭 VS 似乎有点愚蠢,而且它并不总是一个选项(我不记得我的头顶在哪里这不是一个选项但相信我有一个奇怪的结构)。
所以我的问题是,如何最好地编写这个(最好意味着最少的 VS 投诉)?都不是eval
ajax 调用也不适合这个 imo。
最佳答案
如果您的目标是减少 VS 投诉,并且您运行的是 asp.net 4(支持静态客户端 ID),也许像下面这样的策略会更好?
- 创建一个 ASP:HiddenField 控件,将其 ClientIdMode 设置为“Static”
- 在页面加载时将 GetRelationshipsForEditRelationship() 的值分配给此字段
- 在您的 javascript 中,改为从隐藏字段中读取值,我假设您知道如何执行此操作。
它比您的解决方案更有效,您将向回发添加一些数据(如果您执行任何数据),但我猜它不会引起任何 VS 投诉:)
关于javascript - ASP.NET 内联服务器标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4627009/