2

こんにちは、MVC でビュー モードの概念を実装する方法について誰かが素晴らしいアイデアを持っているかどうかを確認しようとしています。したがって、ユーザーがページを開く場合、そのページは表示モード (すべてのコントロールが無効) で開き、編集権限がない場合は通常どおりに開く必要があります。表示ページにも部分ページがあることに注意してください

4

1 に答える 1

0

MVCフレームワークの下でページを完全に制御できると思います。標準のMVCメソッドを使用して入力コントロールを生成している場合は、次の方法で実行できます。

@Html.TextBox("MyTextBoxID", Model==null?"":Model.MyFieldValue, new {disabled = "disabled})

標準のMVCメソッドを使用して入力コントロールを生成していない場合。独自のメソッドを作成して、入力コントロールを生成できます。たとえばMyExt.cs

public static class MyExt
{
    public static MvcHtmlString MyTextBox(this HtmlHelper html, string id, object value)
    {
            // check user privilege
            if (CurrentUser.CanEditThisPage /*Implement your own logic here */)
                 return html.TextBox(id, value);
            else
                 return html.TextBox(id, value, new {disabled = "disabled"});
    }
}

そしてあなたのページで

@using MyNamespace
...
@Html.MyTextBox("MyTextBoxID", Mode==null?"":Model.MyFieldValue)

別の方法

サーバー側からクライアント側にインジケーターを渡し、javascriptまたはJQueryを使用してすべてのコントロールを無効にします。

@Html.Hidden("CanEdit", CurrentUser.CanEditThisPage)

JavaScriptで

void pageLoad() {
    if ($("#CanEdit").val() == "true"))
        $("input").attr("disabled", "disabled");
}

そのようなもの(構文の正確さについてはよくわかりません:P)

于 2011-05-05T01:52:51.270 に答える