2012-04-30 35 views
0

我需要通過發出Ajax請求並下載HTML來動態構建控件,如文本框,複選框,單選按鈕等。但是一旦有足夠的控件顯示在屏幕上並且用戶提交了表單,我需要所有的控件並且它是張貼的值。在Asp.Net MVC中,使用非順序索引很容易獲得已發佈的值。但是,我如何得到哪個控件的價值呢?簡單地說如果表單已經提交了值「Hello World」。我需要能夠知道Hello World的來源。是提交此值或文本區的文本框?如何知道控制器中控件文本框/複選框等的類型?

我不需要別的東西像ID,名字等等。只需要知道控件的類型,無論是texbox,textarea,select還是哪一個。

+5

標準服務器端,你不能。您需要記住,在MVC中,它使用標準的HTTP請求響應模型,這與WebForms不同,後者通過ViewState維護髮送元素的上下文等。因此,從請求響應的角度來看,所有您必須使用的是發送數據的元素的名稱和數據本身。 我能想到的最好的事情就是將發送的表單元素類型附加到元素的名稱中,但這看起來有點麻煩。你爲什麼需要這個? – Liam

+0

@Liam你應該把它作爲IMO的答案。 –

回答

1

當您動態構建這些客戶端元素時,您會爲其提供一個名稱,以便將其發佈到服務器。
只要按照類似的命名約定:
textarea1,textarea2 ...
txt1中,TXT2,...
然後在服務器,收集價值觀 - 以所有以textarea的收集值開始鍵文字區域的...

一個更好的辦法,是有名單的模型爲每種類型的,當你生成客戶端要素,建立自己的名稱,這樣的數值將被ModelBinder的
被映射到正確的列表這些名稱的語法有點討厭,所以使用客戶端模板 I used this post by haacked when i needed to build something like this

0

您需要了解更多關於http get或post的信息。

相關問題