我提交表单时有几个隐藏的表单字段没有被发送?我使用Html助手来添加页面形式......
<%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");
}
}
}
这两个If语句从未命中过。另外,当我查看formCollection对象时,我可以看到那两个字段不在那里。如何确保我的隐藏字段与表单的其余部分一起提交?
答案 0 :(得分: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>
<% } %>