具有服务器端值的不引人注目的JavaScript,最佳实践?

Jul*_*999 6 asp.net ajax jquery unobtrusive-javascript

我习惯做这样的事情:

<a href="Javascript:void(0);" onclick="GetCommentForGeneralObservation(<%# Eval("ID") %>)">
Run Code Online (Sandbox Code Playgroud)

这将是一个转发器或类似顺便说一句.但是我现在试图使用不引人注目的JavaScript,因此摆脱了标记中的任何JS.我试图弄清楚这样的情况下最佳做法是什么?我已经使用了属性,然后使用JQuery将值传递给AJAX调用,但它看起来有点像黑客.

根据第一个回复编辑:

我在考虑更多

从网页的结构/内容和表示中分离功能("行为层").

据我所知,这是不引人注目的JS的一部分.

这恰好适用于我不必担心Javascript在客户端被关闭的应用程序,它在我公司内部托管.我得到的是如果我通过JQuery将onclick事件附加到单独的.js文件中,我将如何从Eval("ID")获取值到JS调用中.

很抱歉没有更清楚.我很欣赏在面向公众的应用程序中逐步增强的需求.

Dan*_*man 12

在HTML 5中,您可以定义自己的前缀为"data-"的属性

例如

<a  
class="comment"
data-rendered-id="<%# Eval("ID") %>"
href="/getCommentForGeneralObservation/<%# Eval("ID") %>" >
Run Code Online (Sandbox Code Playgroud)

然后在click事件处理程序中使用jQuery中的该属性.

$(".comment").click(function () {
  var id = $(this).attr("data-rendered-id");
  return GetCommentForGeneralObservation(id);
});
Run Code Online (Sandbox Code Playgroud)

只要它们支持jQuery,这在大多数HTML5之前的浏览器中都可以使用.

请注意,在不引人注目的JavaScript中,您确实应该支持非JavaScript浏览器,因此您需要一个同样适用的href属性.