2011-10-18 121 views
0

在我看來,這是一個相當有趣的問題。 我有一個使用WebForm視圖引擎的強類型視圖,我不知道是否改用剃刀可以解決我的問題。.Net MVC 4查看引擎WebForm

問題: 我有一個看法與汽車列表,所以類型IList <Car>。 我有一個按鈕「創建一個新車」彈出窗口,彈出窗口是一個隱藏的窗體,你調用一個jQuery UI命令$('formName').dialog()彈出它,這種形式有可能的新車的屬性,所以可能一個強烈類型的新視圖Car。填寫表格後,數據庫應該填入新車,並且應該使用Ajax刷新汽車列表。 主要問題是我不能同時使用HTML助手IList <Car>Car

簡而言之:該視圖的強類型是什麼?是否可以使用彈出來定義兩個視圖和另一個視圖?將它改爲剃刀可以解決我的問題嗎?

最好的問候,

鐵托莫賴斯

+1

我不知道你的問題是什麼。但在Razor中,WebForms中無法做到這一點。我更喜歡剃刀自己,但改變並不能解決你的'問題'。 –

+0

除非您在此處發佈您的代碼示例,否則沒有人會提供可靠的答案。我有點理解你需要什麼,但這可能是錯誤的,所以發佈代碼,請。 – tugberk

回答

1

不要混用上市的汽車,共創新車的意見。

例如,您可以使用jQuery對話框或類似組件,製作一個彈出窗口,動態加載「_CreateCar」局部視圖。然後當部分視圖完成時,使用另一個Ajax調用重新加載列表視圖。

1

也許沒有那麼多的優雅的解決方案是創建一個複雜的視圖模型,如:

class ListAndCreate 
{ 
public IList<Car> AllCars {get;set;} 
public Car NewCar {get;set;} 
} 

IMO這是正確因爲這一個觀點是負責列出所有小轎車和創建一個新的。現在,我假設您的NewCar具有來自您的控制器的值或其他值,您需要將模型傳遞給您的視圖。

@Jonas提到的另一種方法也是正確的,更加統一。您可以創建一個局部視圖_CreateCarCar類型,使用Jquery/Ajax將其加載到對話框/彈出窗口中,並將表單POST形式發送到控制器中的Create(Car c)方法。