正常情況下,當我設計一個表單時,我期望的數據是該頁面的視圖模型的一部分,我可以將該類放在控制器方法中,並且綁定起作用。如何綁定到不在我的模型中的asp.net mvc 2中的類?
但是,我在母版頁的局部視圖中添加了一個表單,所以它不是特定於任何一個視圖模型。我試圖確保表單字段的ID與通常會自動生成的內容匹配,但對象值在我的控制器方法中始終爲空。
這裏是一個片段構成了我我的母版頁的局部視圖:
<tr>
<td >Current password:</td>
<td><%= Html.Password("PasswordChange.OriginalPassword", "", new RouteValueDictionary { { "class", "required remote" } })%></td>
</tr>
<tr>
<td >New password:</td>
<td><%= Html.Password("PasswordChange.NewPassword", "", new RouteValueDictionary { { "class", "required remote" } })%></td>
</tr>
正如你可以看到可以想象,PasswordChange是不是所有的我的視圖模型的一部分(當然這是沒有必要繼承我所有的視角模型都來自一個共同的基礎,以便使用這種形式?)。
我控制器的方法是這樣的:
[HttpPost]
public ActionResult ChangePassword(PasswordChange PasswordChange)
{
我打的方法,但PasswordChange.OriginalPassword和PasswordChange.NewPassword總是空。
我認爲有一些簡單的方法來做到這一點,但我無法弄清楚。
感謝達林,但我想我只是發現問題的根源。 :-(查看我的回答 – pc1oad1etter 2013-02-18 17:05:25
這是OP要求的答案,他發現另一個答案並沒有改變這個事實 – 2013-02-18 17:27:34
@DaveA我不確定你的觀點是什麼,但我很樂意收到這個答案我的發現只不過是我以一種可行的方式做了一切事情,除了我的財產是私人的,前綴似乎並不是障礙。我會閱讀ChildActions,謝謝。 – pc1oad1etter 2013-02-18 17:44:19