2010-07-12 61 views
4

我有一個ASP.NET MVC 2網頁,其中我呈現了多個相同類型的部分視圖。每個部分視圖都包含用於發佈smth的Ajax表單。的形式包括:ASP.NET MVC 2多個部分視圖表單字段名衝突

  • 輸入:EditorFor(M => m.content)
  • 爲輸入的驗證:ValidationMessageFor(M => m.Content)

的問題是因爲頁面上有多於一個這樣的表單,所以輸入字段的名稱會有衝突。這可以通過添加EditorFor()重載的'htmlFieldName'屬性來解決,但會導致另一個問題;驗證不再起作用,因爲輸入字段的名稱已更改...

任何想法?

回答

1

好的,我解決了它。 問題在於衝突不是由於輸入字段的ID,而是由於驗證字段。所以,現在它的工作原理是這樣的:

<%= Html.EditorFor(m => m.Content)%> 
<%= Html.ValidationMessageFor(
     m => m.Content, 
     null, 
     new { id = Model.ValidationMessageId, name = Model.ValidationMessageId })%> 

其中ValidationMessageId是返回一個獨特的HTML ID爲驗證域的模型的只讀字符串屬性。