簡體   English   中英

將Url.Action傳遞到React JSX文件?

[英]passing a Url.Action to a react JSX file?

本教程說:

請注意,在真實的應用程序中,您應該生成URL(通過Url.Action調用)在服務器端並將其傳遞下來,或者使用RouteJ而不是對其進行硬編碼。 為了簡單起見,本教程對其進行了硬編碼。

我無法在JS本身中做到這一點: <CommentBox url="@Url.Action("Comments")" />,

...那么“傳遞下去”是什么意思?

是否只是這樣說“在允許使用@的Razor csHtml文件中定義URL,”這樣的另一種說法?

<script>
   $.CommentsUrl = '@this.Url.Action("Comments", "Home")';
<script>

... 或者,還有更好的方法?

即使我做后者,也無濟於事把URL插入這段代碼中:

ReactDOM.render(
    <CommentBox url=??? />,
    document.getElementById('content')
);

以下代碼實際上是在cshtml剃刀頁面中完成的。 它將CommentBox組件呈現到內容div

ReactDOM.render(
    <CommentBox url=??? />,
    document.getElementById('content')
);

由於它在cshtml中,因此您可以執行以下操作:

<div id="content"></div>
<script type="text/javascript">
    ReactDOM.render(
        <CommentBox url='@Url.Action("Comments")' />,
        document.getElementById('content')
    );
</script>

如果僅包括一個js文件,則需要創建一個全局javascript變量並使用它:

CSHTML:

<div id="content"></div>
<script type="text/javascript">
    var commentUrl = '@Url.Action("Comments")';
</script>

外部JS:

ReactDOM.render(
    <CommentBox url={commentUrl} />,
    document.getElementById('content')
);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM