如何通过Formcollection获取从视图到控制器的值MVC
我正在使用MVC2 ASP项目。 我得到的问题是我的cotroller没有捕捉到来自视图的价值。 我使用的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>
我修好了。 我应该给的完整路径,从哪里赶数据,
所以insted的的
item.ProductionOrderNo =collection["textProductionOrderNo"];
我写
这就是我建议你做的。您应该将其标记为答案。 – 2013-05-08 17:19:50
我没有真正理解你,但感谢任何方式:) – 2013-05-09 05:33:08
我认为在您的视图中使用aspx文本框控件并不是一个好主意我宁愿使用regulat 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>
它does not帮助! – 2013-05-07 17:16:58
仍然需要空当我看当地人 – 2013-05-07 17:26:59
在我看来,如果你想使用的FormCollection你需要一个表格。我的标记中没有看到一个。
所有Detailsview被放置在
FormCollection是否为空?或者您试图从中拉出的物品?换句话说,你在看'item.ProductionOrderNo'并在分配'collection [“DetailsView1 $ TexMainOrder”]后找到它为空;''到它?还是你直接检查收藏?如果是第一个,请尝试第二个。可能是未按预期命名的事物。 – KennyZ 2013-05-07 20:14:18
是的,我没有看到'item.ProductionOrderNo'后分配集合,它显示为空。 – 2013-05-07 23:49:25
你不应该使用服务器控件来,如果这是MVC。你有没有检查在HTML文本框生成的名称是你期望他们是什么? – 2013-05-07 16:50:52
不明白你是什么意思, – 2013-05-07 17:27:58