2013-05-27 98 views
1

我正在處理一個MVC項目,我想通過一個FormCollection,填充表單數據,並將其發佈到我的控制器中的操作方法。下面是該視圖的例子:FormCollection不填充

<asp:TextBox ID="txtClientLastName" name="txtClientLastName" runat="server" class="focus"/> 

(是的,我知道ASP控制在MVC觀點並不好,但是這就是我有回到標籤之間觀看結束代碼,以及這是爲什麼!我還沒有取代他們)

我用一個輔助鏈接到我的行動:

<%=Html.ActionLink("Save","ClientInformationEdit",new {id=Model.PersonId})% 

這就要求我的行動:

public ActionResult ClientInformationEdit(int id, FormCollection form) 
    { 
     //rptLOA_GridCommands(form, id); 

     CIHelper ch = new CIHelper(); 


     ch.person.LastName = form["txtClientLastName"]; 
     db.SaveChanges(); 

     return View(ch); 
    } 

我的passes the correct value but FormCollection form is null so form["txtClientLastName"] is null and I don知道爲什麼。

+1

你把喲你在表單html元素內提交按鈕?如果可能,請發表您的看法 – forseta

+0

。 –

+0

我面臨同樣的問題 – Steve

回答

0

添加後的屬性如下圖所示:

 [HttpPost] 
public ActionResult ClientInformationEdit(int id, FormCollection form) 
    { 
     //rptLOA_GridCommands(form, id); 

     CIHelper ch = new CIHelper(); 


     ch.person.LastName = form["txtClientLastName"]; 
     db.SaveChanges(); 

     return View(ch); 
    } 

如果你想發佈在超鏈接上單擊窗體,然後添加以下代碼:

<%=Html.ActionLink("Save","ClientInformationEdit",new {id=Model.PersonId,onclick="document.getElementById('form-id').submit();"})%> 
+0

感謝您的回覆。我在添加HttpPost和過去遇到404錯誤時遇到了問題。已在視圖 – user2284341

+0

中顯示一個表單標籤,以便檢查問題 –

0

試試這個:

@using (Html.BeginForm("Save", "ClientInformationEdit", FormMethod.Post)) 
{ 
    <input type="hidden" value="@Model.PersonId"/> 
    <asp:TextBox ID="txtClientLastName" name="txtClientLastName" runat="server" class="focus"/>  
    <input type ="submit"/> 
} 

你的看法