1

したがって、フォームには「無料」と「価格」という 2 つの入力があります。Free はチェックボックスであり、ボックスがチェックされている場合、価格ボックスは表示されません。チェックされていない場合、価格ボックスが表示されます。

ページがロードされた後、onChecked を簡単にフックして可視性のオンとオフを切り替えることができますが、問題はベスト プラクティスとは何かをプリロードすることです。

私が言えることから、ここには3つの主な解決策があります:-

  1. インライン スタイルを設定して、開始モデルに基づいて可視性を設定します。つまり、@(model.Free?"hidden":"visibile") は、CSS が構造から分離されていると想定されていないため、一種の悪い習慣のように思えます。 2つを少し混ぜます。

  2. jQuery ハンドラーをロード時に起動してチェックボックスのステータスを確認するように設定します。このアプローチの問題は、起動するまでに数秒かかるため、「ちらつき」が発生することです。

  3. 私が見逃している他の何か...

何かアドバイス?

4

1 に答える 1

3

1.

ほとんどの css スタイルは、外部のスタイルシートに分割したほうがよいですが、単純なstyle="display:none;"の場合はインライン スタイルで問題ありません。

また、MVC4 の時点で、変数が null の場合、Razor は属性をレンダリングしません。

@{
    var displayIt = Model.Free ? "display:none;" : null;
}
<div style="@displayIt">
    The above style attribute will not be rendered when displayIt is null
    (in MVC4)
</div>
于 2012-09-27T22:15:58.517 に答える