我正在使用一个对训练事件进行评级的jquery库。 基本上,这是评估训练日期的客户端代码:
$('#rateItYours').bind('rated reset', function (e) {
var ri = $(this);
var value = ri.rateit('value');
var trainingID = $("#MainContent_hlTrainingDateID").text();
//maybe we want to disable voting? ri.rateit('readonly', true);
$.ajax({
url: 'RateIt.aspx', //your server side script
data: { id: trainingID, value: value }, //our data
type: 'POST',
success: function (data) {
$('#response').append('<li>' + data + '</li>');
},
error: function (jxhr, msg, err) {
$('#response').append('<li style="color:red">' + msg + '</li>');
}
});
});
因此,我使用以下方法轻松获得评级值:
var value = ri.rateit('value');
我还有训练日期所需的数据库 ID,如下所示:
var trainingID = $("#MainContent_hlTrainingDateID").text();
所以我可以提醒value
和trainingID
. 我的问题是我从来没有写过任何可以发出某种ajax()
电话的东西。 所以我看到它传递了网址RateIt.aspx
所以我创建了一个名为 RateIt.aspx 的新网络表单。 目前为止,一切都好。。。但是这个 RateIt 的代码应该如何拦截trainingID
.aspx并value
如下所述:
data: { id: trainingID, value: value }, //our data
所以我正在使用 chrome 开发人员工具,我看到在我添加 RateIt 之前.aspx它失败了,说它找不到这个资源。 因此,一旦我创建了RateIt.aspx那么chrome就不会报告错误,但问题是我想了解这个ajax调用以及如何编写RateIt.aspx。 从data
行中获取这些值会是什么样子。
有人可以解释并提供关于 RateIt.aspx 外观的指导吗? 也许显示实际获取这些值的代码(最好是 C#)并提醒它们或某种模拟代码以查看我有正确的值? 对不起菜鸟问题。
基于此,在 RateIt.aspx 页面代码隐藏中创建 updateRating 方法
[WebMethod]
public static string updateRating(string id, string value)
{
// do something with the parameters
}
并在 ajax 方法中显式调用它
url: 'RateIt.aspx/updateRating', //your server side script
你可以用这段代码获取它
var data = Context.Request["data"];
然后取决于你的 JSON 格式
var js = new System.Web.Script.Serialization.JavaScriptSerializer();
var obj = js.Deserialize<Dictionary<string,string>>(data); // or int or object for second argument depending on your data
然后,字典将包含 2 个项目,一个具有键 ID 的项目,另一个带有键值,每个项目都包含一个提供的值。