点击锚链接后,我想调用一个代码隐藏函数(将一些HTML内容代码加载到页面中)。
代码隐藏:
public void loadNewPage(string id)
{
ltlContent.Text = getPageCenter(id);
}
JS代码:
$('a').click(function (e) {
e.preventDefault();
var data = { userName: $(this).attr("id") };
var dataVal = JSON.stringify(data);
$.ajax({
type: "POST",
url: "Default.aspx/loadNewPage()",
contentType: "application/json; charset=utf-8",
data: dataVal,
dataType: "json",
success: function (id) {
}
});
});
HTML:
<a href="#" id="kontakt">Go to Kontakt</a>
我得到的只是在URL的后面添加了#
并且没有调用代码隐藏功能。
答案 0 :(得分:0)
试试这个:
在您的锚中执行此操作:
<a href="javascript:void(0)" id="kontakt">Go to Kontakt</a>
并将您的ajax脚本修改为:
$('a').click(function (e) {
var data = { 'id': $(this).attr("id") };
var dataVal = JSON.stringify(data);
$.ajax({
type: "POST",
url: "Default.aspx/loadNewPage",
contentType: "application/json; charset=utf-8",
data: dataVal,
dataType: "json",
success: function (id) {
}
});
});
答案 1 :(得分:0)
试试这个:
JavaScript的:
$(document).ready(function(){
$('a').click(function (e) {
e.preventDefault();
var data = { 'id': $(this).attr("id") };
var dataVal = JSON.stringify(data);
$.ajax({
type: "POST",
url: "Default.aspx/loadNewPage",
contentType: "application/json; charset=utf-8",
data: dataVal,
dataType: "json",
success: function (data) {
var htmlStr = data.d;
$('#ltlContent').html(htmlStr);
}
});
});
});
C#代码隐藏:
using System.Web.Services;
[WebMethod()]
public static string loadNewPage(string id) {
string result = getPageCenter(id);
return result;
}
如果一切正常,那么只需在jquery ajax调用成功的地方注入html字符串