2012-01-12 101 views
1

我有幾個隱藏的表單字段,當我提交表單時不會發送?我用的HTML輔助添加窗體頁...隱藏的字段不在窗體集合中發送asp.net MVC

<%using (Html.BeginForm("UpdateXML", "PatientACO", new { template = (int)Model, PopPatId = TempData["POPPATID"]}, FormMethod.Post, new { name = "editTemp", id = "temp1" })) 
Response.Write("<table width=\"500\" class=\"odd\">"); 
Html.Hidden("encounter", encounter); 
Html.Hidden("AddEnc", encflag); 
Response.Write("</table>"); %> 

這裏是我的控制器的方法...

public ActionResult UpdateXML(int template, int PopPatId, FormCollection formCollection) 
{ 
    foreach (var key in formCollection.Keys) 
    { 
     if (key.ToString() == "deactivate") 
     { 
         ((XmlElement)node.SelectSingleNode("//template/elements/element[@name=\"Active\"]")).SetAttribute("value", value); 
      if (value == "N") 
      { 
       dateIn = DateTime.Now.ToString("dd-MMM-yy"); 
      }        
     } 
     if (key.ToString() == "AddEnc") 
     { 
      if(formCollection[key.ToString()]=="ADDENC") 
          ((XmlElement)node.SelectSingleNode("//template/elements/element[@name=\"FOCUSED_READMISSIONS_ID\"]")).SetAttribute("value", "0"); 
     } 

    } 
} 

這兩個如果語句從不打。另外,當我看着formCollection對象時,我可以看到那兩個字段不在那裏。我怎樣才能確保我的隱藏字段與表單的其餘部分一起提交?

+0

是頁面上的表單字段? – 2012-01-12 19:25:01

+0

我其實在後面的代碼中找不到它們。出於某種原因,它們不會被添加到頁面中。 – SoftwareSavant 2012-01-12 19:39:12

回答

3

你在代碼中有一些錯誤。如果您嘗試將html與服務器端代碼混合使用,則不應使用Response.Write。另外,您需要將表單的內容放在大括號中。試試這個:

<% using (Html.BeginForm("UpdateXML", "PatientACO", 
     new { template = (int)Model, PopPatId = TempData["POPPATID"]}, FormMethod.Post, 
     new { name = "editTemp", id = "temp1" })) 
    { %> 
     <table width="500" class="odd"> 
      <%= Html.Hidden("encounter", encounter) %> 
      <%= Html.Hidden("AddEnc", encflag) %> 
     </table> 
<% } %>