2017-09-02 23 views
-1

2個表單和2個控制器動作具有幾乎相同的代碼或者在模型中創建新屬性以確定控制器中應發生什麼更好?在mvc模型中幾乎具有相同功能或參數的2個表單和2個後處理動作

public ActionResult SubmitFactors(EntityRelationshipsIndexModel m) 
    { 
     Method1(); 
     Method2(); 
     if (m.Factor.Equals("X")) 
     { 
      m.Yfactor = null; 
     } 
     else 
     { 
      m.XFactor = null; 
     } 

     Method3(); 
    } 

OR

public ActionResult SubmitXFactor(EntityRelationshipsIndexModel m) 
    { 
     Method1(); 
     Method2(); 
     model.Y = null; 
     Method3(); 
    } 

    public ActionResult SubmitYFactor(EntityRelationshipsIndexModel m) 
    { 
     Method1(); 
     Method2(); 
     model.X = null; 
     Method3(); 
    } 

回答

0

我認爲更好的選擇是使用一種方法(DRY原則)。但要記住封裝這個邏輯:

if (m.Factor.Equals("X")) 
{ 
    m.Yfactor = null; 
} 
else 
{ 
    m.XFactor = null; 
} 

單獨的類。我想這個邏輯可能會在未來增加(?)。

這只是沉思,因爲一切都取決於您的項目藝術結構和要求。

更新

你也應該考慮實現模板方法模式,如果你有代碼看起來像這樣:

Method1(); 
Method2(); 
anyClass.FunctionCall(m); 
Method3(); 
相關問題