いくつかの異なる ASP.NET ページに登録プロセスを実装しています。ページ自体は機能しますが、いずれかで送信をクリックすると、次のようなメッセージが表示されます
{"成功":true,"例外":null,"InnerException":null,"ReturnVal":3}
ReturnVal
私が受け取っているのは正しいです。AJAX
関数が完了すると、停止してエラーまたは成功のどちらにも続かず、JSON
結果を表示するだけのようです。ここにスニペットがあります:
<input type="submit" value="Next" id="Package" onclick="return DoAjaxSubmit(this);"/>
</div>
</div>
</p>
<script type="text/javascript">
function DoAjaxSubmit(btnClicked) {
var form = $(btnClicked).parents('form');
$.ajax({
type: "POST",
url: form.attr('action'), //'<%=ResolveUrl("~/register/go") %>',
data: form.serialize(),
dataType: "json",
error: function (xhr, status, error) {
},
success: function (response) {
if (response != null) {
if (!response.Successful) {
alert("Please select the Package");
return false;
}
else {
switch (response.ReturnVal) {
case 0:
window.location.href = "/Register/Free";
break;
case 1:
window.location.href = "/Register/Confirmation";
break;
case 2:
window.location.href = "/Register/AdOptions";
break;
case 3:
window.location.href = "/Register/PrintOptions";
break;
case 4:
window.location.href = "/Register/JobOptions";
break;
case 5:
window.location.href = "/Register/Landing";
break;
}
}
}
}
});
return false;
}
コントローラー:
[AcceptVerbs(HttpVerbs.Post)]
[RestrictedAction(new[] { "user" },null)]
public JsonResult Package(string[] package)
{
var t = new TransactionResult();
if (!string.IsNullOrEmpty(package[0]))
{
//Reset Session values in case of start over
Session[SessionNames.PRINTOPTIONS] = null;
Session[SessionNames.JOBOPTIONS] = null;
Session[SessionNames.ADOPTIONS] = null;
Session[SessionNames.LANDING] = null;
Session[SessionNames.QUANTITY] = null;
Session[SessionNames.PACKAGE1] = package;
//Determine which options page to navigate to
t.ReturnVal = 6;
foreach (var p in package)
{
if (Convert.ToInt32(p) < t.ReturnVal && Convert.ToInt32(p) != 1) t.ReturnVal = Convert.ToInt32(p);
}
if (t.ReturnVal == 6) t.ReturnVal = 1;
t.Successful = true;
}
return Json(t);
}
送信ボタンの戻り値を削除し、return false; を追加して、JSON
結果の Successful 属性を false に設定しcontroller
て、エラー部分が機能するかどうかを確認しようとしましたが、同じことを行うだけです (それを除く)。 false を返しますが、エラー メッセージは表示されません)。
編集コンソールエラー
Uncaught ReferenceError: $ is not defined Package:283
DoAjaxSubmit Package:283
onclick Package:263
Resource interpreted as Document but transferred with MIME type application/json: "http://192.168.0.21:82/register/package".