0
我有一个aspx页面上的以下设置:JQuery的AJAX和asp.net页面
<asp:Content ID="contentBody" ContentPlaceHolderID="body" Runat="Server">
<div class="Container-WithoutSideBar">
<asp:Label ID="TextTitle" runat="server" AssociatedControlID="ArticleTitle" Text="Title " />
<asp:TextBox ID="ArticleTitle" TextMode="SingleLine" runat="server"></asp:TextBox>
...
</asp:Content>
及以下的JQuery AJAX:
function fnGetArticleHTML()
{
var articleText = JSON.stringify(tinyMCE.activeEditor.getContent());
$.ajax({
type: "POST",
url: 'adminpageadd.aspx/SubmitArticleHTML',
data: "{ 'ArticleHTML': " + articleText + "}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
alert("Article saved");
},
error: function (xhr, ajaxOptions, thrownError) {
//alert("Error Saving Article");
alert(xhr.responseText);
}
});
return false;
}
这一切工作正常。
而服务器端代码:
[System.Web.Services.WebMethod]
public static string SubmitArticleHTML(string ArticleHTML)
{
news_adminpageadd addArticle = new news_adminpageadd();
return addArticle.SubmitArticle(ArticleHTML);
}
private string SubmitArticle(string ArticleHTML)
{
return ArticleTitle.Text;
}
的问题是,当我尝试返回Article.Text
,这是asp:TextBox
我得到下面的异常的内容:
{"Message":"Object reference not set to an instance of an object.","StackTrace":" at news_adminpageadd.SubmitArticle(String ArticleHTML) in .....\news\\adminpageadd.aspx.cs:line 69\r\n at news_adminpageadd.SubmitArticleHTML(String ArticleHTML) in ....\news\\adminpageadd.aspx.cs:line 64","ExceptionType":"System.NullReferenceException"}
其实质上是这样说的:
ArticleTitle.Text;
未设置不是一个对象的实例。
我知道情况并非如此,因为在Page_load上它工作正常。
我认为与WebMethod的交互是问题,但我该如何解决它?
将文本框设置为客户端,并通过int传递他AJAX不会帮助我,因为我需要它在服务器端加载正确的值。
我试过找到控件,但是这仍然给出了相同的例外。
任何想法?
您无法访问Web窗体控件(即'的 ')来自Web方法。您必须将值传递给您的Web方法。 –
zgood