0

我正在从事 MVC2 ASP 项目。我遇到的问题是我的控制器没有捕捉到来自视图的值。我使用 Formcollection 在我的视图中从 Textbox 中捕获值,但是当我运行它时,Collection 一直显示 Null

这是我的控制器

    [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>
4

3 回答 3

0

我认为在您的视图中拥有 aspx 文本框控件不是一个好主意我宁愿使用规则 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"];

即使您决定使用它,您也应该添加名称并将其设置为客户端 ID 模式静态

  <asp:TextBox ID="txtName" name="txtName" clientIdMode="static" runat="server" ></asp:TextBox>
 <asp:TextBox ID="TexMainOrder" name="TexMainOrder" ClientIdMode="static" runat="server" ></asp:TextBox>
于 2013-05-07T16:52:18.163 回答
0

在我看来,如果你想使用 FormCollection,你需要一个表单。我在你的标记中没有看到。

于 2013-05-07T17:50:36.407 回答
0

我已经修好了。我应该给出从哪里捕获数据的完整路径,

如此执着

item.ProductionOrderNo =collection["textProductionOrderNo"];

我写

 item.ProductionOrderNo = collection["ctl00$MainContent$DetailsView1$textProductionOrderNo"];
于 2013-05-08T01:47:50.210 回答