2013-06-25 5 views
0

Я хочу отобразить предупреждение javascript, используя сообщение, переданное из действия контроллера, которое возвращает результат Json. Я хочу, чтобы в этом сообщении были разрывы строк.Как вернуть разрывы строк в MVC JsonResult

Вот мой контроллер, обратите внимание на «\ 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); 
} 

Однако \ п который отображается в окне предупреждения. Поэтому кажется, что возвращенный Json избегает \ n. Как я могу получить его в качестве разрыва строки?

Javascript:

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

Что делает 'CreateFailureConfirmation'? Я ничего не вижу в этом, избегая струн, так что, возможно, это так. – Jacob

+0

Вы пробовали "\\ n"? –

+0

@Jacob - нет ничего, что могло бы ускользнуть от него в CreateFailureConfirmation. –

ответ

1

Как вы оповещение данных? Похоже, вы, возможно, предупреждаете строку JSON, а не строку JavaScript. Убедитесь, что вы разбираете JSON в своем результате, изменив alert(xhr.responseText) на alert(jQuery.parseJSON(xhr.responseText));