2016-08-17 1 views
0

Я пытаюсь открыть некоторый контент на новой вкладке браузера. Я передаю данные из js ajax в контроллер MVC, затем возвращает результат просмотра обратно в js, но открывает его на новой вкладке в виде текста - нет html/исходного кода просто простого текста. Как я могу вернуть представление как Html? Кроме того, я попытался не возвращать результат обратно в JS (удаленный блок успеха из JS) и вернуть View в браузер из MVC, но он также не будет работать. Что я делаю не так ? СПАСИБО!View возвращается как текст вместо html на новую вкладку браузера (Ajax - MVC)

JS:

// open row data in new browser tab 
    function openInNewTab(e) { 

     var dataItem = this.dataItem($(e.currentTarget).closest("tr")); 
     console.log(dataItem); 
     var rowDetailsObject = new Object(); 
     rowDetailsObject.ID = dataItem.ID; 
     rowDetailsObject.Name = dataItem.Name; 
     rowDetailsObject.Number = dataItem.Number; 
     rowDetailsObject.Status = dataItem.Status; 


     $.ajax({ 
      type: "POST", 
      data: rowDetailsObject, 
      url: "/Home/NewTabPage", 
      dataType: "html", 
      success: function (result) { 

       var w = window.open(); 

       $(w.document.body).html(result); 
       console.log(result); 
      } 

     }); 
    }; 

MVC контроллер:

public class HomeController : Controller { 

    public ActionResult NewTabPage(ContactList contactList) 
    { 
     ViewBag.ContactInfo = contactList; 


     return View(); 
    } 

} 

HTML:

@{ 
    { Layout = null; } 
} 

@{ 
    ViewBag.Title = "NewTabPage"; 
} 

<!DOCTYPE html> 
<html> 
<head> 
    <!-- CSS files references --> 
    <link href="~/Content/kendo.common.min.css" rel="stylesheet" /> 
    <link href="~/Content/kendo.default.min.css" rel="stylesheet" /> 
    <link href="~/Content/kendo.default.mobile.min.css" rel="stylesheet" /> 
    <link href="~/Content/ProjectCss.css" rel="stylesheet" /> 
    <!-- JS files references --> 
    <script src="~/Scripts/jquery-3.1.0.js"></script> 
    <script src="~/Scripts/kendo.all.min.js"></script> 
    <script src="~/Scripts/app/controller/OpenInNewTab.js"></script> 
</head> 
<body> 

<div> 
    <h2>Detailed data from Kendo row</h2> 


     <p>ID: <span id="ID">@ViewBag.ContactInfo.ID</span> </p> 

     <br/> 
     Name: @ViewBag.ContactInfo.Name 
     <br /> 
     Number: @ViewBag.ContactInfo.Number 
     <br /> 
     Status: @ViewBag.ContactInfo.Status 
</div> 
</body> 
</html> 
+0

Проверить этот пост: http://stackoverflow.com/questions/8919019/how-to-post-form-data-to-a-new-window-using-jquery-ajax –

ответ

0

Изменить контроллер PartialViewResult:

public PartialViewResult NewTabPage(ContactList contactList) 
{ 
    ViewBag.ContactInfo = contactList; 

    return PartialView(); 
} 
Смежные вопросы