asp.net webappのモデル側からJS(例えばwindowをクローズ等)を起動できないものかと、以下のようなコードをチョット試してみた・・・
@page
@model TestModel
・・・
<script type="text/javascript">
@Html.Raw(Model.ExecScript)
</script>
public class TestModel : PageModel {
・・・
public string ExecScript;
public void OnPost(・・・) {
・・・
ExecScript = @"window.close();";
・・・
}
結論としてはうまく動作。ただ、セキュリティ上Html.Rawはあまり使うべきではないのかな?
ちなみに、gijgoのTreeViewのdataSource指定なんかにもHtml.Rawを使って動的にTreeの内容を変更することも出来たけど、他にいいやり方あるかな?
<script type="text/javascript">
$(document).ready(function() {
$('#tree').tree({
uiLibrary: 'bootstrap4',
dataSource: @Html.Raw(Model.TreeItems), /* データソース(JSON)はモデルで作成 */
primaryKey: 'id',
imageUrlField: 'flagUrl'
});
});
treeの場合は、dataSourceにURLを指定できるので、Web APIのURLを指定するようにした方が良いかもね。