2009-03-20 13 views
0

ASP.NET MVCの部分ビューを使用して作成/編集マークアップをカプセル化する場合、アクションに基づいてどのコントロールをレンダリングするかを変更する最も良い方法は何ですか?部分ビューのアクションに基づくASP.NET MVC Readonlyフィールド

たとえば、アカウント作成時(テキストボックス経由)に電子メールアドレスを入力してから、アカウントを表示するときに(通常のHTMLを介して)表示できるようにしたいとします。

<% if(Action == Create) { 
    Html.TextBox("EmailAddress") 
} else { 
    Html.Encode(Model.Person.EmailAddress) 
} %> 

任意の提案:擬似コードで

は、私はこのような何かを期待していますか?

答えて

1

あなたはロジックをカプセル化するために、独自のHTMLヘルパークラスを使用することができます。

public static string DualModeTextBox(this HtmlHelper helper, ViewMode viewMode, string textBoxName, string textBoxValue) 
{ 
    if (viewMode == ViewMode.Edit) { 
    return System.Web.Mvc.Html.InputExtensions.TextBox(helper, textBoxName); 
    } 
    //else 
    return helper.Encode(textBoxValue); 
} 

をあなたもMVC controlsを検討することもでき、より複雑なタスクのために。

関連する問題