2016-12-20 25 views
0

我有一個視圖和兩個模型,具體取決於我想綁定相應模型的某些條件。根據某些條件綁定特定模型以在各種模型中查看

我想這樣的事情

@if (ViewBag.msg == "true") 
{ 
    @model ECIFormsApplication.Models.MVC.Entities.Form6Model 
} 
else 
{  @model ECIFormsApplication.Models.MVC.Entities.Form6Submission.Form6SubmissionModel 
} 

毫無疑問,我得到的錯誤只有一個型號的語句是允許的,但有沒有實現這一目標的方法嗎?

+2

只需在控制器中進行條件檢查並返回適當的視圖。 –

+0

我只有一個視圖,我不想維護兩個不同的視圖,即使我在控制器中執行條件檢查,我應該在視圖中寫入什麼@model語句? –

+0

這沒有任何意義 - 如果它的一個視圖只能綁定到一個模型。 –

回答

0

如果您堅持不創建第二個視圖,我的意見是使用一個模型,並在滿足所需條件時關注禁用所需的驗證。不要嘗試動態模型綁定,這是一個壞主意,很難實現。這也將使未來的維護更加困難。

有一些方法可以有條件地禁用驗證。

  • 在服務器端,通過驗證Enabled屬性設置爲false或的ValidationGroup爲 「」
  • 在客戶端,通過使用ValidatorEnable JavaScript函數

你可以看看這個:https://www.codeproject.com/questions/427158/how-to-disable-required-field-validator-when-contr