私は非常にですが、開発には新しい経験があります。いくつかの入力フィールドと送信ボタンがあるASPページがあります。この送信ボタンは純粋にコードビハインドファイルにメソッドを呼び出すことを意図した$ .ajaxを呼び出します。しかし、私は2つの面白いことに気づいた。まず、ajax呼び出しは、どのデータが提供されているかにかかわらず成功します。次に、responseTextフィールドはページ全体のhtmlソースです。ASP.NET jQuery Ajaxコーリングコードビハインドメソッド
私はthisとwebconfigを指す他の記事を読んだことがありますが、これらの解決策では問題が解決しないようです。ここで
は、ASPページである: の背後にあるコード
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<script src="TesScript.js"></script>
<link rel="Stylesheet" type="text/css" href="TestStyle.css" />
</head>
<body>
<div>
<ul class="tempList">
<li>Name:
<input id="nameText" type="text" />
</li>
<li>Attending:
<input id="yesButton" type="radio" name="attending" />
Yes
<input id="noButton" type="radio" name="attending" />
No </li>
<li>Return Address:
<input id="returnAddressText" type="text" />
</li>
<li>
<input id="submitButton" type="button" onclick="submit()" value="Submit" />
</li>
</ul>
</div>
<ul id="errorContainer" class="errorSection" runat="server" />
<ul id="messageContainer" class="messageSection" runat="server" />
</body>
</html>
:
using System;
using System.Web.Services;
using System.Web.UI;
namespace TestAspStuff
{
public partial class _Default : Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
[WebMethod]
public static string OnSubmit(string name, bool isGoing, string returnAddress)
{
return "it worked";
}
}
}
とJavaScript:今
function submit() {
var name = "my name";
var isAttending = true;
var returnAddress = "[email protected]";
SendMail(name, isAttending, returnAddress);
}
function SendMail(person, isAttending, returnEmail) {
var dataValue = { "name": person, "isGoing": isAttending, "returnAddress": returnEmail };
$.ajax({
type: "POST",
url: "Default.aspx/OnSubmit",
data: dataValue,
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("Request: " + XMLHttpRequest.toString() + "\n\nStatus: " + textStatus + "\n\nError: " + errorThrown);
},
complete: function (jqXHR, status) {
alert("complete: " + status + "\n\nResponse: " + jqXHR.responseText);
}
});
}
が、私はへのurlプロパティを変更することができます気づきました私が望むものでエラーメソッドは呼び出されず、ステータスは成功し、responseTextはhtml pa全体ですge。私のwebconfigには、適切なセクション(htmlModuleセクションを含む)がすべてあります。私は.Net 3.5で働いています。私はどんな助けにも感謝し、また、私はこれに本当に新しいので、他人に明らかなことは私には明らかではないようです。 JavaScriptを使用してJavaScriptからasp.netコードビハインドメソッドを呼び出す方法がある場合は、それを投稿してください。ありがとう!!!
は、IMOあなたは、JSON応答を取得するには、MVC、ウェブAPIやWebサービスを使用する必要があります。あなたはaspxのページでこれを行うことができますが、それはハックな解決策です。 aspxページは、Webページをレンダリングするために設計されています。 –
Webサービスを作成するのは、おそらく最も単純なものです...このようなものは、それらが作られたものです。 – Nick
ありがとうございます。私はそれを少し調べて、ここでより良い理解が得られたら、おそらくそれを試してみるでしょう。私はそれがこのレベルでどのように働くか知りたい。ありがとう! –