2011-07-15 56 views
2

任何指導用戶選擇或指向我一個例子,將不勝感激(我不能制訂Googleplex的一個很好的搜索詞)。最好的辦法計算基礎上的形式

我使用我的字典定義,然後呈現與@ Html.RadioButtonFor視圖枚舉,

這裏的模型等是我的模型的例子:

public PaymentPlanList PaymentPlan { get; set; } 
     public enum PaymentPlanList 
     { 
      PaymentPlan_One, 
      PaymentPlan_Two, 
     } 
     public class PaymentPlanDictionary 
     { 
      public static readonly Dictionary<PaymentPlanList, string> paymentplanDictionary = new Dictionary<PaymentPlanList, string> 
      { 
      { PaymentPlanList.PaymentPlan_One, "One full payment in advance (receive the lowest price)." }, 
      { PaymentPlanList.PaymentPlan_Two, "Two payments: first payment of 50% due up front, the balance of 50% due within 30 days (increases fee by $100)." }, 
      }; 
      static string ConvertPaymentPlan(PaymentPlanList paymentplanlist) 
      { 
       string name; 
       return (paymentplanDictionary.TryGetValue(paymentplanlist, out name)) 
        ? name : paymentplanlist.ToString(); 
      } 
      static void Main() 
      { 
       Console.WriteLine(ConvertPaymentPlan(PaymentPlanList.PaymentPlan_One)); 
       Console.WriteLine(ConvertPaymentPlan(PaymentPlanList.PaymentPlan_Two)); 
      } 
     } 

而且爲了完整起見,這是我對以上的看法:

<p> 
    @Html.RadioButtonFor(m => m.PaymentPlan, "PaymentPlan_One") 
    One full payment in advance (receive the lowest price). 
</p> 
<p> 
    @Html.RadioButtonFor(m => m.PaymentPlan, "PaymentPlan_Two") 
    Two payments: first payment 50% due up front, the balance of 50% due within 30 days (increases fee by $100). 
</p> 

這是我有用戶填寫的報價系統。對於這種特定的服務,我說我收取$ 1,000.00。這是基礎價格。基於用戶輸入,這個價格將會改變,我想向用戶展示。所以,如果用戶選擇第一個選項,價格保持不變。如果用戶選擇第二個選項,則費用增加$ 100.00。

這按指數規律改變,因爲有一些影響價格(如果選擇)多個輸入。

最終,根據用戶輸入,我需要計算總數。我正在渲染一個顯示總數的視圖。我正在考慮使用一些@ {}塊,並且if/else if語句要麼a)如果選擇的內容不會增加總數,或者b)顯示額外的數額(例如$ 100.00),則顯示爲空,然後顯示總。

喜歡的東西(編輯在這裏爲清楚起見):

  • Base服務:$ 1,000.00
  • 附加組件服務1:$ 100.00(僅當用戶選擇 「PaymentPlan_Two」 爲各佔50%兩筆款項(從PaymentPlanList枚舉),否則隱藏的(和不添加的$ 100.00),如果用戶選擇「PaymentPan_One」足額支付)
  • 附加組件服務2:$ 0.00(這是隱藏的$ 0.00美元或沒有價值,因爲用戶沒有從單獨選擇任何內容枚舉,但是如果選擇了100.00美元的價值,那麼如果它是seleclec,將會使總價值爲1200美元泰德;另外,如果列表中有3個或更多項目,我該如何處理?例如,Choice_One爲$ 0.00美元,Choice_Two爲$ 100.00 Choice_Three爲$ 200.00)
  • 總計:$ 1,100.00

感謝您的幫助。

回答

0

讓我們看看如果我正確地理解您的需求:

  • 該應用程序需要的價格增加的基本價格,取決於 選擇的附加組件服務。
  • 這些選擇來自一個字典,它基於一個枚舉
  • 因此,我們希望存儲對Enum的價格,以保持數據關聯在一個地方。

它可以存儲對枚舉單個值:

public enum PaymentPlanList 
    { 
     PaymentPlan_One = 100, 
     PaymentPlan_Two = 200, 
    } 

不過,我不認爲這將是足夠靈活的滿足我們的需要 - 枚舉只允許整數,並且在bitwise operations(其中值是2的倍數)中通常以這種方式使用。

我認爲這裏的一個更好的解決方案可能是使用一個Model-View-View-Model (MVVM),它可以包含關於哪些服務可用,它們花費多少,以及哪些服務與其他服務組合有效的邏輯。

Knockout.js home page上有一個票據定價示例(聽起來與這裏的域名在概念上類似),它基於用戶選擇重新計算客戶網頁上的旅行票價。