0

我想使用从返回 Json 结果的控制器操作传回的消息来显示 javascript 警报。我希望这条消息中有换行符。

这是我的控制器,注意输入换行符的“\n”:

[HttpPost]
public JsonResult CreatePO(PONewViewModel viewModel)
{
    if (ModelState.IsValid)
    {
        var createPOResult = _managePOsAppServ
            .CreateNewPOHeaderAndDetail(CurrentFacilityId, CurrentUserId, viewModel.VendorId,
                viewModel.CustomerId, viewModel.OrderHeaderId, viewModel.ItemId, viewModel.QtyToOrder,
                viewModel.UnitCost);

        return Json(createPOResult, JsonRequestBehavior.AllowGet);
    }

    var modelStateErrors = this.ModelState.Keys.SelectMany(key => this.ModelState[key].Errors);
    string errorMessage = "";
    if (modelStateErrors.Count() > 0)
    {
        foreach (var error in modelStateErrors)
        {
            errorMessage += error.ErrorMessage + "\n";
        }
    }

    return Json(ActionConfirmation<int>.CreateFailureConfirmation(errorMessage, -1,false).Message, JsonRequestBehavior.AllowGet);
}

但是,\n 正在警告框中显示。所以看起来返回的 Json 正在转义 \n。如何让它被识别为换行符?

Javascript:

xhr.onreadystatechange = function () {
    if (xhr.readyState == 4 && xhr.status == 200) {        
        alert(xhr.responseText);
        hideLoading();
    }
}
4

1 回答 1

2

你如何提醒数据?听起来您可能正在警告 JSON 字符串,而不是 JavaScript 字符串。确保通过更改 alert(xhr.responseText)为来解析结果中的 JSONalert(jQuery.parseJSON(xhr.responseText));

于 2013-06-25T22:28:11.380 回答