2017-09-14 136 views
2

我正在開發一個web應用程序,在那裏我使用reactjs和MVC c#。在reactjs中訪問viewbag屬性

我想知道如果jsx包含在cshtml中,是否可以訪問jsx中的viewbag屬性?我會有一個對象或ID被傳遞給jsx,這將在UI中呈現?

回答

2

ViewBag在服務器端渲染並執行,在瀏覽器(客戶端)上調用響應。
你的主要選項有:

  1. 全局變量 - 在剃刀(.cshtml),你可以設置一個全局 對象window.param = ViewBag.param。並從反應中訪問它。
    const x = window.param
  2. 通過 data-attribute傳遞一個值(僅適用於原語)反應的根元素,並抓住它,你打電話之前渲染:例如:

    // razor (.cshtml) 
         <div id="root" data-param="@ViewBag.param"></div> 
    
        // react 
         const root = document.getElementById('root');  
         const param = root.getAttribute('data-param'); 
         render(<App myParam={param}/>, root) 
    
+1

完美。謝謝 – Maddy