2011-11-03 30 views
0

尋找有關如何處理此問題的經驗意見:ASP.NET MVC數據輸入多個表單標籤,或只是一個大的?

我們有一個顯示用戶數據輸入表的頁面。 (表仇敵:這是表格數據,所以......)

頁面上的每個輸入設計「隱藏」一個更復雜的形式,通過一個jQuery對話框/彈出窗口中顯示。整個表格被包裹在一個標籤中,當用戶點擊表格底部的「提交」按鈕時發佈。表格行是模型中的訂單項。

傳遞給控制器​​的方法模型基本上是

public class MyBigModel { 
    public List<LineItemModel> LineItems {get;set;} 
    ...more stuff... 
    } 

    public class LineItemModel { 
    public List<LineItemDetail> Details {get;set;} 
    } 

    public class LineItemDetail{ 
    public List<OtherDetails> SometimesIHaveDetailsToo {get;set;} 
    } 

在功能上,提交整個....工作正常,但現在我們被要求讓人們提交各行等

目前,提交單行項目,我複製(jQuery.clone())錶行到另一種形式,張貼的,和銷燬克隆。

,我認爲是完全切換到「的形式每行」式的做法,但不完全知道如何處理這個 - 我可以換一個帶有標籤?我是不是該?

關在魔法麒麟土地,人們可能會想到這樣的事情......

< form> 
    <table> 
    < form> <tr with my data and a nice submit button /> </form> 
    < form> < another tr with my data and another nice submit button /> </form> 
    </table> 

    <input type="submit">MyMasterSubmit</input> 
</form> 

(希望能說明問題不夠好)

正如我所說,每行中保存的數據其實很複雜。每個訂單項都有一些DIV元素與彈出窗口包含在一起,所以我不確定他們可以自己在表格行中而不會導致一些標記問題。這是一款專爲快速輸入數據而設計的LOB應用程序,因此將其分開並不是一個解決方案。

任何想法,良好做法來處理呢?

回答

0

如何序列化只是一個div(或圍繞選定的行代碼的一些「行」),並利用阿賈克斯()發送到服務器。 jQuery to serialize only elements within a div

+0

因此,在這種情況下,我能得到兩全其美?一個實際的

標籤,加上通過序列化/ ajax「提交」每一行? – reallyJim

+0

是的!其簡單,應該工作得很好。你也可以使用jQuery的ajax start和stop方法來顯示來自http://www.ajaxload.info/ –

+0

的一個漂亮的加載圖像。只要我能夠正確地獲得post數據格式,這絕對是答案。謝謝,亞當! – reallyJim

相關問題