2012-01-12 102 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> 
<% } %>