2

既に存在する機能に従ってページを更新するためにブラウザが使用する代わりに、JSON データのファイルを保存するように要求する理由のリストを持っている人はいますか? 私はこれをしばらくの間機能させていましたが、突然、それが機能しなくなるようなことをしました。asp.net MVC4 を使用しています。

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>

ご覧のとおり、適切なスクリプトが含まれています。

@using (Ajax.BeginForm("SearchByDemographic", "SearchPatients", null, new AjaxOptions { HttpMethod = "POST", LoadingElementId = Url.Content("~/Images/ajax-loader.gif"), OnSuccess = "binddata", OnFailure = "FailAlert" }, new { id = "searchByDemographics" }))

ご覧のとおり、私は Ajax.BeginForm() を使用しています。

JSON結果を返すために使用する関数は次のとおりです

    [HttpPost]
    public ActionResult SearchByDemographic(SearchByDemographicModel SearchByDemo)
    {
        string UID = HttpContext.User.Identity.Name;
        DataRepository dr = new DataRepository();
        List<SelectListItem> retVal = dr.SearchByDemographic(SearchByDemo, UID);
        if ((retVal == null) || (retVal.Count < 1))
            return Json("Empty Record: No Patient Found", JsonRequestBehavior.AllowGet);
        else
            if(retVal[0].Text.Contains("Error")){
                return Json(new {success = false, nameError = "General Return Exception"}, DataRepository.searchPatientJSonStr(retVal), JsonRequestBehavior.AllowGet);
            }
            else{
                return Json(DataRepository.searchPatientJSonStr(retVal), JsonRequestBehavior.AllowGet);
            }//return PartialView("_RetTable", Json(DataRepository.searchPatientJSonStr(retVal), JsonRequestBehavior.AllowGet));            
    }

これは私に起こり続けます。私はこれが起こる理由を知りません。なぜこれが起こり続けるのかを理解できれば、将来それを修正するためのより良い立場に立つことができます.

私の知る限り、ブラウザはJSONデータを期待していますが、どういうわけか、それを取得していませんか?
また、返されるテストデータの JSON は次のとおりです...少しずれている場合は、20 個のリストから 1 つの結果を取得しようとしました...

"{\"total\":1,\"page\":1,\"records\":1,\"rows\":[{\"id\":11248971,\"cell\":[\"CRAYON \",\" RED \",\" 1956-03-04 \",\" M \",\" 11248971 \",\" 840006723 \",\" 737452545\"]}]}

unobtrusive-ajax をロードします

私はいつもファイルを開くように促すだけです。

私の返品タイプ

4

2 に答える 2

3

この動作は、「フレンドリーなJSONエラーを表示する」という名前の構成オプションが原因でIEにのみ存在します。これにより、jsonが通常消費されるのではなく、特定のサイズ(200文字を覚えているようです)よりも小さい場合に保存するように求められます。

考えられる解決策は、

return Json(result, "text/html");

IEが正しく動作するようになります

于 2012-11-22T07:35:01.327 に答える
0
              public JsonResult Index()
{
         Models.MyEntities Object = new Models.MyEntities();
        var vperson = Object.Person;
        return Json(vperson, "text/html", behavior:JsonRequestBehavior.AllowGet);
   }
于 2018-04-02T11:21:00.307 に答える