最近のプロジェクトでは、ドメインを越えて他のプロジェクトからデータを呼び出す必要があるため、最初は datagrid の url 属性を他のプロジェクトの URL アドレスとして直接定義するだけで十分だと考えていました。テスト後、JSON データは確かに返されたことがわかりましたが、JSON データでは「無効なラベル」エラーが発生しました。このエラーの解決策をオンラインで検索し、「JavaScript 処理の JSON 無効なラベル エラーの解決策」を参照してください。データグリッドのloadDataメソッドを使用してjsonをロードしても、上記のエラーが表示されるのは、フォーマットの問題ではないような気がします。
「JavaScript のクロスドメイン アクセスの問題の解決策」という記事を検索したところ、easyUI は JQuery の非同期メソッドを使用してデータをロードし、JQuery のクロスドメイン アクセス ルール、つまり jsoncallback に従う必要があるためであることがわかりました。 = を上記の記事に記載されている URL に追加する必要がありますか?コールバック関数のパラメータと返される json の形式は次のように変更する必要があります: コールバック関数名 (json データ)。返されるデータはコールバック関数名のない json 形式のデータのみであり、当然形式エラーが発生します。 ASP.NET MVC auto を変更しました。定義された JsonResult クラス。カスタム JsonResult クラスの記述方法の詳細については、「ASP.NET MVC JsonResult シリアル化結果のカスタマイズ」を参照してください。
コードは次のとおりです。
public class CustomJsonResult:JsonResult
{
public override void ExecuteResult(ControllerContext context)
{
if (context == null)
{
throw new ArgumentNullException("context")
HttpResponseBase 応答= context.HttpContext.Response;
if ( !String.IsNullOrEmpty(ContentType))
{
response.ContentType =
}
else
{ response.ContentType = "アプリケーション/json";
}
if (ContentEncoding != null)
{
response.ContentEncoding = ContentEncoding;
if (データ != null)
{
#pragma warning disable 0618
//クロスドメイン呼び出しでは json 形式を変更する必要があります jsoncallback
if (context.HttpContext.Request.Params.AllKeys.Contains("jsoncallback") ))
{
文字列コールバック = context.HttpContext.Request.Params["jsoncallback"]
response.Write(callback "(" JsonConvert.SerializeObject(Data) "); }
else
{
response.Write(JsonConvert.SerializeObject(Data))
}
#pragma warning list 0618
}
}
}
EasyUI のデータグリッドのコードは次のとおりです:
コードをコピー
url:'http://localhost:9000/ManagementSystem/ListCurrent?Department=sss&jsoncallback=?',
pageNumber: 1,
pageSize: 20,
pageList: [20, 40, 60, 80, 100],
onDblClickRow: function(rowIndex) {
edit(); }
});
著者: mikel
出典 :http://www.cnblogs.com/mikel/