天天看點

ASP.NET MVC 2生成動态表單的一種最簡單的思路

在BPM、OA等系統中,都會存在一個表單設計器。有些是通過操作gridview來完成一個表單的設計;有些是通過類似VS拖拽的方法完成一個表單的設計。很明顯後面一種優越于前面一種。無論是哪種,最後都會産生一些XML之類的表單結構的資料。

    這篇文章将講述,在表單設計器設計好表單之後,在ASP.NET MVC中如何将表單結構的xml轉換成實際應用系統中的表單。看下面一個xml檔案,我們假設它是由一個表單設計器設計出來的。

    下面,我将把它轉化成實際的asp.net mvc系統中的表單。首先,使用LinqtoXML将上面的XML檔案轉換成XElement,代碼如下。在控制器中最好不要直接讀取檔案,這裡為了簡單直覺起見,就直接在Controller中讀取xml檔案了。

    在表單設計器中很難的一塊就是控件的定位。從我提供的XML中可以看到,它裡面是存放了位置資訊的。這使我們想到了div的絕對布局。這個方法在這種情況下非常的适合。

    label用于顯示文本資訊,input用于顯示表單上的value。下面通過循環産生html腳本。

    最後通過Response.Write(sb.ToString())輸出。

    整個View的代碼如下:

效果:

1、顯示XML表單:

<a href="http://images.cnblogs.com/cnblogs_com/zhuqil/WindowsLiveWriter/ASP.NETMVC2_5E2/ggg_2.jpg"></a>

2、送出表單:

<a href="http://images.cnblogs.com/cnblogs_com/zhuqil/WindowsLiveWriter/ASP.NETMVC2_5E2/hhh_2.jpg"></a>

後話:從這篇文章可以看到,打算設計的表單設計器上的控件可以随意拖放的,位置随意擺設的。在生成HTML的時候,使用div的絕對布局,打算朝這個方向做,不知道可行否。

本文轉自麒麟部落格園部落格,原文連結:http://www.cnblogs.com/zhuqil/archive/2010/07/30/aspnet-mvc-Dynamic-Form.html,如需轉載請自行聯系原作者

繼續閱讀