2009-06-05 17 views
0

我有點被困在一個MVC的問題。C#MVC:查看可選視圖模型(數據並不總是存在/必要)

我有一個註冊視圖,通過www.example.com/register達到,這樣的事情:

<form id="registrationform" method="post"> 
<fieldset> 
    <label for="emailaddress">Email</label> 
    <input id="emailaddress" name="emailaddress" type="text" /> 
    //more inputs etc. 
</fieldset> 
</form>  

現在,我讓人們邀請別人,所以我在我的控制器的註冊檢查方法邀請參數(www.example.com/register?invite=1234)。如果invite參數不爲空,我會在數據庫中查找以獲取關聯的「受邀」用戶。這一切都很好。

現在的問題:我想從數據庫中的數據預填充我的投入。我已經有了這些數據,我只是不知道將其放入MVC視圖的最佳方式,並禁用了現在已經填充的輸入。

視圖模型?請記住,我需要將視圖定期清空(我不想使用不同的視圖,這會違反DRY)。

謝謝:)

回答

2

在您的視圖模型:

public class RegistrationViewModel 
{ 
    public bool Invited; 

    /* 
    * Fields for prepopulating inputs 
    */ 
} 

在你看來:

<%= Html.TextBox("email", null, Model.Invited ? new { @readonly = "readonly"} : null) %> 

<%= Html.TextBox("email", null, Model.Invited ? new { @disabled = "disabled"} : null) %> 
+0

是否有使用Html.Textbox,而不是直接寫任何性能影響的 Alex 2009-06-05 21:41:46

3

我會建議你創建一個視圖模型,有你的瀏覽是完全不知道的數據是或不是來從數據庫預先填充在所有的事實。

如果您預先填充數據..然後提供必要的數據填入您的視圖模型(並禁用未來的預先填充的輸入)

如果你是從頭開始..然後填充空/默認的數據視圖模型的

無論哪種方式,你所有的觀點確實是顯示的形式,並填充上基於視圖模型中的傳遞的各種文本框和其他輸入默認數據。

相關問題