2016-05-16 12 views
1

MVC6/Asp.netコア1.0のResponse.BodyでJavaScriptの結果を書き込むには?Asp.netコア1.0 - レスポンスにjavascriptを書く

私の場合、クライアントの通知を呼び出すためのスクリプトをレンダリングしたいのですが、ViewDataに新しい通知が存在するかどうかを確認するためにコードを自分のビューに配置したくありません。

は、私はこのような操作を行う場合は、次の

var bytesWrite = GetBytes(script); 
    await HttpContext.Response.Body.WriteAsync(bytesWrite, 0, bytesWrite.Length); 

結果はHTMLテキストとして表示するスクリプトです。

UPDATE:

これは、物事をクリアすることがあります。 View()を結果として返したいと思います。しかし、"<script> Alert("Hey")</script>"

public IActionResult Popup() 
     { 
      //logic 
      //..... 
      //var script = ProduceNotification(); 
      // 

      //Render Notifications 
      var bytesWrite = GetBytes(script); 
      await HttpContext.Response.Body.WriteAsync(bytesWrite, 0, bytesWrite.Length); 

      //Return de view normally. It doesn´t know about any notifications beeing returned 
      return View(); 
     } 
+1

を呼び出すという見解を返すコンポーネントに

  • コンポーネントあなたを呼び出しますjavascript ")'または '' ObjectResult(string) 'を返す(" application/javascript ")]'を生成しますか? – Tseng

  • +0

    レスポンスBodyに書き込んでからビューを返すべきではありません。このように構成されることを意図したものではありません。スクリプトをページに追加するテキストとしてビューに渡します。 – Tratcher

    答えて

    2

    I'veはコンポーネントでこれを行うために管理(obiviousそれは、後にカプセル化されます)Response.Bodyに書く:

    http://www.strathweb.com/2015/07/viewcomponents-asp-net-5-asp-net-mvc-6/ http://blog.2mas.xyz/asp-net-5-view-components/

    実装手順があります:

    • HttpContextに格納されたメサージュを読み取るカスタムコンポーネントを作成します。項目
    • 他の人が継承することを共有し、そのビューにビューを作成するには、/ `リターン・コンテンツ(xmlString、」アプリケーションを試してみました唯一のレンダリングスクリプトは
    関連する問題