如何在客户端声明 .ajax 时编写服务器端



我正在使用一个对训练事件进行评级的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();

所以我可以提醒valuetrainingID. 我的问题是我从来没有写过任何可以发出某种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 的项目,另一个带有键值,每个项目都包含一个提供的值。

相关内容

  • 没有找到相关文章

最新更新