我正在玩并试图在MVC中学习更多关于AJAX的知识。
目前,我在MVC视图中有以下代码块。我们的想法是,当点击链接时,应用程序将在控制器中触发FlagInappropriate()方法,并在单击的链接中显示一条消息并禁用该链接。
<script type="text/javascript">
function flagInappropriate(postId) {
var url = "Home/FlagAsInappropriate/" + postId;
$.post(url, function (data) {
if (data) {
$('#LinkAppropriate').text('Post has been flagged');
$('#LinkAppropriate').attr("href", "javascript:void(0);");
} else {
alert('Post cannot be flagged');
}
});
}
</script>
<h1>Index</h1>
<a href="javascript:flagInappropriate(1)" id="LinkAppropriate">Flag as inappropriate</a>
目前这是有效的,没有任何投诉。我的下一步是能够使用任何数量的链接调用此javascript方法。请参阅以下示例:
<script type="text/javascript">
function flagInappropriate(postId) {
var url = "Home/FlagAsInappropriate/" + postId;
var callingObject = CallingObjectIDGetter();
$.post(url, function (data) {
if (data) {
$('#' + callingObject).text('Post has been flagged');
$('#' + callingObject).attr("href", "javascript:void(0);");
} else {
alert('Post cannot be flagged');
}
});
}
</script>
<h1>Index</h1>
<a href="javascript:flagInappropriate(1)" id="Link1">Flag as inappropriate</a>
<a href="javascript:flagInappropriate(1)" id="Link2">Flag as inappropriate</a>
<a href="javascript:flagInappropriate(1)" id="Link3">Flag as inappropriate</a>
<a href="javascript:flagInappropriate(1)" id="Link4">Flag as inappropriate</a>
<a href="javascript:flagInappropriate(1)" id="Link5">Flag as inappropriate</a>
鉴于这种情况,我如何派生和操纵调用Javascript方法的对象?简而言之,我将使用什么来代替 var callingObject = CallingObjectIDGetter(); 这一行?
谢谢!
答案 0 :(得分:1)
为什么不利用jQuery并执行此操作,而不是绑定标记中的事件:
标记:
<a href="Home/FlagAsInappropriate/1" id="Link1">Flag as inappropriate</a>
... more links go here...
的javascript:
function flagInappropriate(callingObject, url) {
$.post(url, function (data) {
if (data) {
$('#' + callingObject).text('Post has been flagged');
$('#' + callingObject).attr("href", "javascript:void(0);");
} else {
alert('Post cannot be flagged');
}
});
}
$('a').click(function(e) {
e.preventDefault();
flagInappropriate($(this).attr('id'), $(this).attr('href'));
});