これを行うために私が見つけた最もクリーンな方法は、data-*
属性を使用することです。
あなたのかみそりのビューで:
<div id="qcontent" data-url="@Url.Action("QuestionList", "TuongTac")" data-keyword="@Model.keyword"></div>
次に、外部JavaScriptファイルで:
$("#qcontent").each(function() {
var url = $(this).data('url');
var keyword = $(this).data('keyword');
// ...
});
もう1つのオプションは、手続き型JavaScriptを外部ファイルに入れてから、Razorビューで1回のヒットで必要な設定だけをダンプすることです。
<script type="text/javascript">
var qcontent.settings = @Json.Encode(new { url = Url.Action("QuestionList", "TuongTac"), keyword = @Model.Keyword });
</script>
JavaScriptファイルでそれを参照してください:
$("#qcontent").load(qcontent.settings.url, { id: 1, keyword: qcontent.settings.keyword });
このアプローチの欠点は、グローバル名前空間を汚染していることです。そのため、名前空間に注意する必要があります。