我正在創建一個asp.net MVC應用程序,我想在其中提供一個動態添加控件的功能。我有一個表單,其中有兩個用於單名控制的名字和姓氏的文本框。現在用戶可以添加任意數量的這組控件。我可以使用Java腳本在頁面上添加這些控件。但是我不知道如何在用戶提交時訪問這些控件的值。在asp.net中按鈕點擊動態添加控件mvc
請這方面的幫助或建議另一種方法
感謝
我正在創建一個asp.net MVC應用程序,我想在其中提供一個動態添加控件的功能。我有一個表單,其中有兩個用於單名控制的名字和姓氏的文本框。現在用戶可以添加任意數量的這組控件。我可以使用Java腳本在頁面上添加這些控件。但是我不知道如何在用戶提交時訪問這些控件的值。在asp.net中按鈕點擊動態添加控件mvc
請這方面的幫助或建議另一種方法
感謝
有史蒂夫·桑德森文章Editing a variable length list, ASP.NET MVC 2-style的讀取。它向你展示瞭如何以乾淨的MVC風格來做你正在尋找的東西。
看看使用jQuery的AJAX調用的提交操作。
你可以通過你的控件進行交互(使用jquery類選擇器和$ .each很容易)並將變量推入一個js變量。 將其解析爲JSON並使用ajax調用將數據傳遞迴控制器。
如果您來自webforms透視圖,則習慣於在代碼隱藏中以編程方式添加這些新控件。使用ASP.NET MVC,你最好用javascript來做這件事。
編寫一個添加FirstName1,FirstName2,FirstName3等的javascript函數應該是微不足道的。在控制器中,檢查Request.Form.AllKeys
以確定用戶添加了多少個字段。
你也可以在迭代稱爲「txtNumFields」的隱藏字段數量,然後使用該作爲循環在你的控制值:
int numFields = int.Parse(Request.Form["txtNumFields"]);
for (i==0;i<numFields ;i++)
{
string firstName = Request.Form["FirstName" + i.ToString()];
...
}
謝謝戴夫,我試過這種方法,但Request.Form.AllKeys總是0.它不顯示任何控件,我使用JavaScript添加。任何幫助? – 2010-04-12 12:57:27
這是問題,因爲Request.Form.AllKeys.Count始終是0.所以我無法訪問我的控制器中的任何項目。 – 2010-04-12 13:06:24
你是否在每個表單域上設置一個ID?您還需要確保該按鈕的類型= submit,並且Action需要能夠接受POST(使用[HttpPost]裝飾Action方法 – 2010-04-12 13:11:48
是否有任何更新,更有效的解決方案,給定已經4年了? – 2016-07-01 13:20:52