Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
表单提交中asp.net razor模型绑定动态列表_Asp.net_Asp.net Mvc_Asp.net Mvc 3_Razor_Webmatrix - Fatal编程技术网

表单提交中asp.net razor模型绑定动态列表

表单提交中asp.net razor模型绑定动态列表,asp.net,asp.net-mvc,asp.net-mvc-3,razor,webmatrix,Asp.net,Asp.net Mvc,Asp.net Mvc 3,Razor,Webmatrix,我正在尝试创建一个用于输入的订单 我需要用户能够添加多行项目,然后更新。我试着 使用购物车类(用户在其中创建购物车项目并添加 列表项,可以向列表项添加多行) 我没有完成那件事。我正在使用asp.netrazor我正在使用 webmatrix来构建站点。Webmatrix表示它无法识别Cart() @{ if(会话[“购物车”]==null) { 会话[“购物车”]=新购物车(); } 购物车=(购物车)会话[“购物车”]; } 产品 大小 价格 @foreach(购物车项目中的可变项目) { @

我正在尝试创建一个用于输入的订单

我需要用户能够添加多行项目,然后更新。我试着 使用购物车类(用户在其中创建购物车项目并添加 列表项,可以向列表项添加多行)

我没有完成那件事。我正在使用asp.net
razor
我正在使用
webmatrix
来构建站点。Webmatrix表示它无法识别Cart()

@{
if(会话[“购物车”]==null)
{
会话[“购物车”]=新购物车();
}
购物车=(购物车)会话[“购物车”];
}
产品
大小
价格
@foreach(购物车项目中的可变项目)
{
@item.ProductID
@项目.尺寸
英镑@item.Price
}

有更好的方法吗?非常感谢所有帮助

我建议使用Visual Studio 2012 Express over WebMatrix进行MVC开发。此外,如果希望用户通过同一页面动态添加行项目,我还建议使用jQuery(javascript)。如果你愿意,我可以和你分享一个例子

还有一个注意事项:您用MVC和WebForms标记了它,这是两个非常不同的平台

编辑:

我认为Dave A的解决方案可能更好,但要使用jQuery实现这一点:

1将添加按钮和隐藏的
div
放入表单中 3在添加按钮上添加隐藏字段单击 4当表单提交时,您将通过POST方法在
productListItems
数组中传递各种产品名称。
注意:你将不得不玩一点这个,但这将是一个很好的学习练习。。。我不太清楚您想做什么,但这是我最好的猜测。

我建议使用Visual Studio 2012 Express over WebMatrix进行MVC开发。此外,如果希望用户通过同一页面动态添加行项目,我还建议使用jQuery(javascript)。如果你愿意,我可以和你分享一个例子

还有一个注意事项:您用MVC和WebForms标记了它,这是两个非常不同的平台

编辑:

我认为Dave A的解决方案可能更好,但要使用jQuery实现这一点:

1将添加按钮和隐藏的
div
放入表单中 3在添加按钮上添加隐藏字段单击 4当表单提交时,您将通过POST方法在
productListItems
数组中传递各种产品名称。
注意:你将不得不玩一点这个,但这将是一个很好的学习练习。。。我不太清楚您想做什么,但这是我最好的猜测。

有一种绑定动态列表元素的方法

@foreach (i=0; i< cart.Items.count; i++)
{
<tr>
   <td class="product"> <input type="hidden" name="cart.item[@i].ProductID"> </td>
   <td class="size"> <input type="text" name="cart.item[@i].Size"> </td>
   <td class="price">£ <input type="text" name="cart.item[@i].Price"> </td>
</tr>
}
我强烈建议您将模型放在Models文件夹中,并使其成为Models命名空间的一部分。然后它们应该会自动可用。否则,您可能必须通过购物车的完整参考路径(如果它不在您的Models文件夹中)来参考购物车。范例


最后一个注释: 您没有将购物车作为模型传递给视图

范例

@model {Project}.Entities.Cart

这是使用MVC 3框架的更好实践。您可能已经在前面发现了任何引用问题,并且可以选择使用紧密绑定的帮助程序

有一种绑定动态列表元素的方法

@foreach (i=0; i< cart.Items.count; i++)
{
<tr>
   <td class="product"> <input type="hidden" name="cart.item[@i].ProductID"> </td>
   <td class="size"> <input type="text" name="cart.item[@i].Size"> </td>
   <td class="price">£ <input type="text" name="cart.item[@i].Price"> </td>
</tr>
}
我强烈建议您将模型放在Models文件夹中,并使其成为Models命名空间的一部分。然后它们应该会自动可用。否则,您可能必须通过购物车的完整参考路径(如果它不在您的Models文件夹中)来参考购物车。范例


最后一个注释: 您没有将购物车作为模型传递给视图

范例

@model {Project}.Entities.Cart

这是使用MVC 3框架的更好实践。您可以更早地发现任何参考问题,并可以选择使用紧密绑定的帮助程序

+1很好的答案。模型绑定到列表是asp.net mvcThanks中最大的“gotcha”之一。cart是一个位于app_数据文件夹中的c sharp文件,它给人的印象是,我的站点中的所有页面都可以使用它。@OmalieBraithwaite可能是这样。调试的第一步是使用名称空间进行引用。+1回答得好。模型绑定到列表是asp.net mvcThanks中最大的“gotcha”之一。cart是一个位于app_数据文件夹中的c sharp文件,它给人的印象是,我的站点中的所有页面都可以使用它。@OmalieBraithwaite可能是这样。调试的第一步是使用名称空间来引用.my error with The tag.now learning.a示例将非常有用。非常感谢。下面是一个使用隐藏字段通过jQuery向表单中添加项目的方法示例。我的问题听起来可能有些轻率,但我是否可以将jQuery与webmatrix一起使用。我认为这是c sharp提出的问题。我正在尝试构建一个订单表单页面。该页面允许用户向订单中添加多个项目,然后发布。订单号名称等只输入一次。现在我可以添加一个项目并在gridview中查看。谢谢你的代码。是的,jQuery是一种客户端语言,独立于服务器(可以与C#、VB、PHP等一起使用)。我不知道你到底想做什么,但你可以试试我给你的东西,看看它是否符合你的要求。我的标签错了。现在学习。举个例子会很有用。非常感谢。下面是一个使用隐藏字段通过jQuery向表单中添加项目的方法示例。我的问题听起来可能有些轻率,但我是否可以将jQuery与webmatrix一起使用。我认为这是c sharp提出的问题。我正在尝试构建一个订单表单页面。该页面允许用户向订单中添加多个项目,然后发布。订单号名称等只输入一次。现在我可以添加一个项目并在gridview中查看。谢谢你的代码。是的,jQuery是一种客户端语言,独立于服务器(可以与C#、VB、PHP等一起使用)。我不知道你到底想做什么,但你可以试试我给你的东西,看看它是否有用
@foreach (i=0; i< cart.Items.count; i++)
{
<tr>
   <td class="product"> <input type="hidden" name="cart.item[@i].ProductID"> </td>
   <td class="size"> <input type="text" name="cart.item[@i].Size"> </td>
   <td class="price">£ <input type="text" name="cart.item[@i].Price"> </td>
</tr>
}
Webmatrix is saying that it doesnt recognise Cart()
Datalayer.Entities.Cart cart = (Datalayer.Entities.Cart)Session["cart"];
@model {Project}.Entities.Cart