2013-05-07 1 views
0

Im MVC2 ASP 프로젝트에서 작업 중입니다. 내가 가진 문제는 내 코토 롤러가보기에서 오는 가치를 잡지 못한다는 것입니다. 나는, 내보기에 을 텍스트 상자의 값을 잡기 위해 Formcollection를 사용하지만 내가 그것을 실행할 때, 컬렉션 여기Formcollection MVC를 통해 뷰에서 컨트롤러로 값을 가져 오는 방법

[HttpPost] 
    public ActionResult Insert(FormCollection collection) 
    { 

     ProductionOrderItem item = new ProductionOrderItem(); 

     item.ProductionOrderNo =collection["DetailsView1$txtName"]; 
     item.ProductionOrderNo = collection["DetailsView1$TexMainOrder"]; 
     item.OrderDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month,DateTime.Now.Day); 

} 

모든 시간 내 ASPX 페이지를 여기

내 컨트롤러를 널 보여줍니다

<asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False" 
     ClientIDMode="Static" DefaultMode="Insert" Height="50px" Width="125px" 
    EnableViewState="False"> 
     <Fields> 
      <asp:TemplateField HeaderText="ProductionOrderNo"> 
       <InsertItemTemplate> 
        <asp:TextBox ID="txtName" runat="server" ></asp:TextBox> 
       </InsertItemTemplate> 
      </asp:TemplateField> 
      <asp:TemplateField HeaderText="MainOrder"> 
       <InsertItemTemplate> 
        <asp:TextBox ID="TexMainOrder" runat="server" ></asp:TextBox> 
       </InsertItemTemplate> 
      </asp:TemplateField> 
+1

을 썼다

item.ProductionOrderNo =collection["textProductionOrderNo"]; 

의 insted, 어디에서 데이터를 캐치하는 전체 경로를 제공해야합니다. 텍스트 상자의 HTML에서 생성 된 이름을 확인 했습니까? –

+0

무슨 뜻인지 이해하지 못 하시겠습니까? –

답변

0

나는 고칠 수있다. 내가

그래서 나는이 MVC의 경우 당신은 서버 컨트롤을 사용하지 않아야

item.ProductionOrderNo = collection["ctl00$MainContent$DetailsView1$textProductionOrderNo"]; 
+0

이것은 내가 너에게 제안한 바였다. 이것을 답으로 표시해야합니다. –

+0

나는 진짜로 당신을 이해하지 못했다. 그러나 어떤 방법으로도 감사해라. :) –

0

보기에서 aspx 텍스트 상자 컨트롤을 사용하는 것이 좋습니다. regluat html 텍스트 상자를 사용하는 것이 좋습니다

<InsertItemTemplate> 
       <input type="txtName" id="txtName" name="fname"> 
       </InsertItemTemplate> 
      </asp:TemplateField> 
      <asp:TemplateField HeaderText="MainOrder"> 
       <InsertItemTemplate> 
       <input type="TexMainOrder" id="TexMainOrder" name="fname"> 
       </InsertItemTemplate> 


    item.ProductionOrderNo =collection["txtName"]; 
    item.ProductionOrderNo = collection["TexMainOrder"]; 

당신은 당신이 이름을 추가하고

<asp:TextBox ID="txtName" name="txtName" clientIdMode="static" runat="server" ></asp:TextBox> 
<asp:TextBox ID="TexMainOrder" name="TexMainOrder" ClientIdMode="static" runat="server" ></asp:TextBox> 
+0

도움이되지 않습니다! –

+0

로컬을 볼 때 여전히 null이 걸림 –

0

정적 클라이언트 ID 모드는 FormCollection를 사용하려는 경우 양식이 필요하다는 것을 나에게 보인다해야 그것을 사용하기로 결정한 경우에도 마찬가지입니다. 마크 업에서 하나도 보지 못합니다.

+0

Detailsview가

안에 있습니다. –

+0

FormCollection은 null입니까? 또는 당신이 그것에서 끌어 내려고 시도한 항목? 즉, 'item.ProductionOrderNo'를 찾고 'collection [ "DetailsView1 $ TexMainOrder"];을 할당 한 후 null을 찾고 있습니까? 그걸로? 아니면 직접 컬렉션을 검토하고 있습니까? 첫 번째 경우 두 번째 시도하십시오. 예상대로 이름이 지정되지 않은 항목 일 수 있습니다. – KennyZ

+0

yea im은 'item.ProductionOrderNo'를 찾고 컬렉션을 지정하면 null이 표시됩니다. –

관련 문제