我有一个具有类似于以下代码的控件:
Javascript
$("#Postcode").autocomplete({
source: '@(Url.Action("AutocompleteHelper"))'
});
HTML
@Html.EditorFor(model => model.Postcode)
它过去都直接位于 .cshtml 文件中,Url.Action
并按预期生成了一个工作 URL。
最近我需要在多个视图中使用它,所以我将 JS 移动到一个单独的 .js 文件中(包装到 aScriptBundle
并通过 包含在父视图中@Scripts.Render
),并且相应的 HTML 现在呈现为部分视图。
这样做的副作用是不再发生 Razor 转换。我不想Url.Action
用硬编码的/<Controller>/AutocompleteHelper字符串替换,所以有没有其他方法可以动态生成和设置这个值?我可以将 Javascript 从包中移出并进入局部视图,但共识似乎是您不应该在局部视图中使用 JS。