У меня есть следующие настройки на странице в 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 не поможет мне, так как мне нужна серверная сторона для загрузки правильных значений.
Я попытался найти элемент управления, но это все равно дает то же исключение.
Любые идеи?
Вы не можете получить доступ к веб-форм управления (то есть '<жерех: TextBox />') из веб-методов. Вы должны передать значения в свой веб-метод. – zgood