それは非常に悪い習慣です。サーバー側の Razor コードとそのような JavaScript を混在させません。モデル (または必要なプロパティのみ) を JSON でシリアル化し、それを直接操作します。
<script type="text/javascript">
// we serialize the IsTemplate and Active properties of the model because we
// only need them in javascript, but if we needed other properties we could have
// included them as well or serialize the entire model
var model = @Html.Raw(Json.Encode(Model.Select(x => new { x.IsTemplate, x.Active })));
// now that we have the model javascript variable, let's manipulate it:
if (!model.IsTemplate) {
$('#someButton').show();
if (model.Active) {
$('#activeschedulespan').show();
$('#inactiveschedulespan').hide();
}
}
</script>
でもねえ、サーバー側で直接実行する必要がある何かに JavaScript を使用しているという印象を受けるのはなぜですか? この特定の例では、サーバー (モデル) で知っている値に基づいて、DOM からのものを表示/非表示にするために JavaScript を使用しています。したがって、この JavaScript を完全に取り除き、モデルのプロパティに基づいて、これらのセクションを DOM に含めるかどうかを決定できます。