2012-01-12 3 views
1

У меня есть пара скрытых полей формы, которые не отправляются при отправке формы? Я использую Html Helpers добавить форму страницы ...Скрытое поле не отправляется в форме Collection 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

являются поля формы на странице? –

+0

На самом деле я не могу найти их в коде. По какой-то причине они не добавляются на страницу. – SoftwareSavant

ответ

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> 
<% } %> 
Смежные вопросы