在 Javascript 中访问 Tag Helper 输出
Accessing Tag Helper output in Javascript
恐怕是 Razor 和标签助手的初学者问题!
在我的剃须刀 html 中使用标签助手,我可以,例如写:
<div><date-picker id="datepicker" value="@DateTime.Now"></date-picker></div>
这将生成输出
<input id="datepicker" class="datepicker" aria-atomic="true" aria-live="assertive" aria-expanded="false" role="combobox" name="datepicker" placeholder="Select date">
等等。我想做的是将输出附加到其他对象,如对话框屏幕,它接受要附加的 html 字符串。
例如
var customDesign = "<div id="something"><date-picker id="datepicker" value="@DateTime.Now"></date-picker></div>";
$(".myDialogfield").after(customDesign);
这在 Razor 中不起作用 - 我尝试了各种方法,例如首先将其创建为 HTML.Raw 字符串并将其作为变量注入等 - 有没有一种方法可以使用我的输出脚本部分中的标记助手?
感谢任何提示!
你不能那样做。 TagHelpers 被解释。换句话说,Razor 必须将它们视为实际的 标签 才能替换它们。在这里,它只是一个 JS 字符串,Razor 不会弄乱它。
你最好的选择可能是某种 JavaScript 模板系统,但一般来说你仍然可以通过不同的路径手动获得你想要的东西。不要硬编码 HTML 的字符串,而是将 TagHelper
包含在 text/html
:
类型的脚本块中
<script type="text/html" id="MyTemplate">
<date-picker id="datepicker" value="@DateTime.Now"></date-picker>
</script>
然后,在您的 JavaScript 中,您可以 select 这个脚本标签并获取其内容:
var customDesign = $('#MyTemplate').html();
$(".myDialogfield").after(customDesign);
恐怕是 Razor 和标签助手的初学者问题! 在我的剃须刀 html 中使用标签助手,我可以,例如写:
<div><date-picker id="datepicker" value="@DateTime.Now"></date-picker></div>
这将生成输出
<input id="datepicker" class="datepicker" aria-atomic="true" aria-live="assertive" aria-expanded="false" role="combobox" name="datepicker" placeholder="Select date">
等等。我想做的是将输出附加到其他对象,如对话框屏幕,它接受要附加的 html 字符串。
例如
var customDesign = "<div id="something"><date-picker id="datepicker" value="@DateTime.Now"></date-picker></div>";
$(".myDialogfield").after(customDesign);
这在 Razor 中不起作用 - 我尝试了各种方法,例如首先将其创建为 HTML.Raw 字符串并将其作为变量注入等 - 有没有一种方法可以使用我的输出脚本部分中的标记助手?
感谢任何提示!
你不能那样做。 TagHelpers 被解释。换句话说,Razor 必须将它们视为实际的 标签 才能替换它们。在这里,它只是一个 JS 字符串,Razor 不会弄乱它。
你最好的选择可能是某种 JavaScript 模板系统,但一般来说你仍然可以通过不同的路径手动获得你想要的东西。不要硬编码 HTML 的字符串,而是将 TagHelper
包含在 text/html
:
<script type="text/html" id="MyTemplate">
<date-picker id="datepicker" value="@DateTime.Now"></date-picker>
</script>
然后,在您的 JavaScript 中,您可以 select 这个脚本标签并获取其内容:
var customDesign = $('#MyTemplate').html();
$(".myDialogfield").after(customDesign);