【发布时间】:2010-08-21 01:46:39
【问题描述】:
我正在使用 fluent NHibernate 和 WebForms,我正在尝试构建一个页面,允许用户在他们的个人资料页面上发布状态更新,我使用 .asmx WebService 将数据发布到数据库然后返回jQuery 要使用的页面的 StatusUpdate 实例。我有几个问题。
1) 首先,当我从 WebService(我正在测试)返回一个字符串时,用户输入其状态的文本框不会清空内容。而且由于即使我手动清除文本框并放入其他内容,页面也不会刷新,它仍然会再次将先前的状态发布到数据库。我该如何解决这个问题?
2) 其次,当我从 Web 服务返回 StatusUpdate 对象时,我无法显示任何结果。我很伤心,我使用 jQuery 对 WebService 进行 AJX 调用。
这是我的代码:
用户个人资料页面 Javascript:
var status1 = $("#statusBox").val();
var userID = $("#MainContent_userID").val();
function SetStatus() {
$.ajax({
type: "POST",
url: "http://localhost/Sports/Services/UserWebService.asmx/SetStatus",
data: '{"status": "' + status1 + '", "userID": "' + userID + '"}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: OnSuccess,
error: OnError
});
}
function OnSuccess(response) {
$("#statusBox").empty();
$("#MainContent_status").html(response.Status).fadeIn(1000);
}
function OnError(request, status, error) {
alert(request.statusText);
}
网络服务:
[WebService(Namespace = "Sports.Services")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
[System.Web.Script.Services.ScriptService]
public class UserWebService : System.Web.Services.WebService
{
private IUserSession _userSession;
public ISession Session1
{
get { return NHibernateSessionModule.GetCurrentSession(); }
}
[WebMethod]
public StatusUpdate SetStatus(string status, Guid userID)
{
_userSession = ObjectFactory.GetInstance<IUserSession>();
StatusUpdate update = new StatusUpdate();
update.StatusDateTime = DateTime.Now;
update.StatusLikes = 0;
update.UserID = userID;
update.Status = status;
Session1.SaveOrUpdate(update);
return update;
}
}
任何帮助都将不胜感激...我看了大概 100 页试图找到答案,但没有一个有效..
【问题讨论】:
标签: asp.net web-services jquery asmx