.NET 3.5、MVC2、JQuery1.4.1でJquery getJSONを使用してサーバー側メソッドを呼び出したいとします。
私はいくつかのオンラインチュートリアルに従いましたが、null以外のものを返すserversideメソッドを取得することはできません。以下のJSで3つの警告がすべて発せられ、サーバサイドの方法(以下も同様)でブレークポイントを打つことができます。私が始めているうちに、私は何か愚かなことをした場合に備えて、すべてのクライアントサイドコードを含めました。私が間違ってやっているアイディア - 私はサーバーから価値を取り戻そうとしました。どうもありがとう。
私のクライアントコードは次のとおりです。
<@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Home Page
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="True">
</asp:ScriptManager>
<script src="../../Scripts/jquery-1.4.1.js" type="text/javascript"></script>
<script>
function test()
{
alert("Here");
$.getJSON(
"/Home/Test", null, function(data, status) { alert("Success!"); alert(data); });
};
</script>
<asp:Button ID="Button1" runat="server" Text="Call Page Methods" OnClientClick="return test()"/>
</form>
</asp:Content>
そして、私のサーバー側のコード(各行は最初<が欠落している)である:私はあなたがここにいくつかの概念を混合さ
public JsonResult Test()
{
string fooString = "test";
return Json(fooString, JsonRequestBehavior.AllowGet);
}
リピータ、メニュー、ボタンなどのMVCで働くんいくつかのWebフォームコントロールがあります。それは素晴らしい考えではありませんが、それは無効ではないか、エラーを引き起こすでしょう。 –
@Dave Ward、彼らは動作しますが、私はその使用法を推奨しません。 –
それは素晴らしいです - ダーリンに感謝します。私は間違いなく、MVCで使用できるものと使用できないものを混同していました。 ScriptManagerを手に入れることができなかったとは思えません。レッスンは学んだ。 JSONリクエストからの戻り値が正しく機能しています。再度、感謝します。 – Beon