2015-04-03 94 views
1

我是asp.net mvc的新手。在我的項目中,我必須添加一個表格,用戶可以在其中輸入詳細信息並從下拉菜單中選擇選項。當用戶單擊添加按鈕時,必須將所有行(包括文本框,下拉列表)添加到表中。另外,當用戶點擊刪除按鈕時,必須從表格中刪除特定的行。默認情況下,當頁面加載時,我應該在表中有兩行,包含所有必填字段。我需要解決以下問題在Asp.net mvc剃鬚刀視圖中添加和刪除動態表中的行

  1. 如何實現上述任務。
  2. 我還需要保存表格的詳細信息。那麼如何將表格細節傳遞給控制器​​呢?
  3. 當用戶點擊編輯按鈕時保存細節後,我應該加載表中的所有細節。請幫我在這

我也搜索了很多,但沒有一個例子包括動態表中的下拉選項。請幫助我完成這項任務。感謝所有的志願者。

+0

一些選項用於動態添加和刪除集合中的項目[這裏](http://stackoverflow.com/questions/29161481/post-a-form-array-without-successful/29161796#29161796)和[這裏] (http://stackoverflow.com/questions/28019793/submit-same-partial-view-called-multiple-times-data-to-controller/28081308#28081308) – 2015-04-06 05:05:00

回答

2

我建議使用史蒂夫·桑德森創建

http://blog.stevensanderson.com/2010/01/28/editing-a-variable-length-list-aspnet-mvc-2-style/

它達到你想要什麼的BeginCollectionItem()幫手,他越過一步一步從一個工作示例。我在我的幾個項目中使用過它。

+0

嗨你的鏈接是有幫助的,我也有其他領域的看法。如何將這些字段值傳遞給控制器​​。 – Vib 2015-04-06 14:50:50

+0

使用包含您的集合字段以及其他字段的ViewModel。使用博客中的示例,假設除了「禮物」集合之外,我們還想添加名稱字段和日期字段。 我創建的示例小提琴:https://dotnetfiddle.net/lbi2Wb – Eckert 2015-04-06 20:16:32

+0

感謝您的示例。我需要爲部分視圖內的字段執行一些jquery函數。但是每次頁面加載時,字段的id似乎都會變化。如何解決這個問題呢。任何解決方案都會對我有所幫助 – Vib 2015-04-07 08:54:02

0

我會在評論中留下一些鏈接,但我沒有足夠的代表。所以我會把這裏作爲答案,並且比我在評論中闡述的更多。但這只是一般信息。請提供更多具體答案的詳細信息。

首先,您正在使用哪個版本的MVC?你的數據模型是什麼樣的?你在使用EntityModel嗎?您是否考慮過客戶端MVC或MVVM框架或庫,如AngularJS或Knockout?

隊伍對你這些問題的答案,答案你的問題可能是...

  1. 創建數據模型類,並開始data annotations裝飾它。 您希望出現在表格中的每一列應作爲公共財產公開。這可以驅動一個code first DB approach。或者,你可以從現有的數據庫建立一個EntityModel。如果您打算這麼做,則可能需要修改T4 templates used by the EF wizard,將數據註釋添加到生成的實體模型。
  2. 您可以使用開箱即用的scaffolding to generate razor templates for CRUD operations。然後你可以使用你的新T4技能modify the scaffolding templates
  3. 考慮將WebAPI和/或SignalR與客戶端框架結合使用,以提供RESTful API或持久連接,其中任何一個都可用於在客戶端和服務器之間同步應用程序級別的數據。

這似乎是一個很好的開銷,但如果您要最大限度地使用Razor視圖,可以爲您節省大量時間。

儘管您可能只想在大部分時間與客戶端交換應用程序級別的數據。您可以使用像AngularJS這樣的框架構建客戶端體系結構,或者圍繞像Knockout這樣的庫構建自己的框架,以綁定到數據,並允許標記(例如,AngularJS中的自定義指令模板)實際上成爲通過客戶端控制器生成和渲染。

對於一個開源,標準化的外觀和感覺,我建議您考慮一下Boostrap的設置,以便相對容易地使用組件和佈局/樣式約定。您可以使用它準系統或將其與其他js庫,like this合併。

+0

嗨感謝您的答覆,我正在使用mvc 4。其實我使用web服務來存儲和檢索數據庫。請通過適當的解決方案提供幫助 – Vib 2015-04-03 15:51:37

+0

您是否被迫使用MVC 4?如果沒有,爲什麼不從5開始,甚至不看6?但是,如果你有一個現有的Web服務api,並且你依賴於服務器端驗證,那麼你真正需要的是一個客戶端應用程序。如果你走這條路線,你會想看看[客戶端MVC框架](http://paulhammant.com/2012/02/13/client-side-mvc-frameworks-compared/)。只需讓客戶端控制器通過對現有Web服務的Ajax調用來檢索數據。 – 2015-04-03 21:22:17