私はかみそりテンプレートを使用しています。以下はシナリオです
$(function(){
//if (ViewBag.IsCallFunction){
somefunction();
//
//do something else
});
viewBag 変数が存在する場合、つまり null ではなく、それが true に設定されている場合は、javascript 関数を呼び出したいと思います。どうすればいいですか?
私はかみそりテンプレートを使用しています。以下はシナリオです
$(function(){
//if (ViewBag.IsCallFunction){
somefunction();
//
//do something else
});
viewBag 変数が存在する場合、つまり null ではなく、それが true に設定されている場合は、javascript 関数を呼び出したいと思います。どうすればいいですか?
@{if(ViewBage.somevalue!=null && ViewBage.somevalue=="true")
{
<script type="text/javascript">
somefunction();
</script>
}
}
ただし、これはレンダリングされたときに呼び出されることを覚えておいてください。OPに従って、呼び出すことはできません。レンダリングすることはできるので、ドキュメントがロードされたときにdocument.ready内で呼び出します
Razor はサーバー上で実行され、JavaScript はクライアント上で実行されるため、Razor コードから JavaScript 関数を呼び出す必要はありません。
代わりに、Razor によって生成された HTML コードをブラウザーが読み込むと実行される JavaScript コードをクライアントに送信できます。
次のようなことができます
<script type="text/javascript">
@* The following line is Razor code, run on the Server *@
@if (ViewData.ContainsKey("IsCallFunction") && ViewBag.IsCallFunction) {
@* The following lines will be emitted in the generated HTML if the above condition is true *@
$(function(){
somefunction();
//do something else
});
@} @* This is the closing brace for the Razor markup, executed on the Server *@
</script>
<script type="text/javascript">
$(function() {
@if (ViewData.ContainsKey("IsCallFunction") && ViewBag.IsCallFunction)
{
<text>somefunction();</text>
}
});
</script>
ただし、ViewBag の代わりにビュー モデルを使用することをお勧めします。この場合、コードを簡素化できるからです。
<script type="text/javascript">
$(function() {
@if (Model.IsCallFunction)
{
<text>somefunction();</text>
}
});
</script>