动态添加新项目极其缓慢

时间:2015-08-17 22:47:48

标签: javascript jquery asp.net-mvc razor

我使用ASP.NET MVC和Razor。用户需要填充由对象列表组成的表单。所以我将控制器中的空对象列表传递给视图。这是我主要观点的一部分:

foreach ( var product in Model.Products )
{
    Html.RenderPartial( "ProductPartial", product );
}

在ProductPartial中,用户为每个产品输入一些字段。 用户可以从列表中动态添加或删除产品。删除我用jquery live函数解决了,很好。但是我在添加新产品时遇到了问题。

我用这种方式解决了:点击加号,点击javascript函数调用控制器动作:

public ActionResult NewProduct()
{
    Product product = new Product();
    product.UniqueId = Guid.NewGuid();
    return PartialView( "ProductPartial", product );
}

我需要每个产品的唯一ID,因为我希望能够通过ID访问来自jquery的产品。 添加工作正常,但它非常慢,因为我在服务器上为每个新产品。是否有一些好的方法可以让它更快?

1 个答案:

答案 0 :(得分:0)

好吧,你可以使用jQuery.clone();而不是要求服务器提供更多相同的HTML;

在示例中,我复制列表中的第一个产品并为其指定新ID,然后将副本添加到列表末尾。

var newProductHtml = $('.MyProducts')[0].clone();
newProductHtml.attr('id', MyNewId);
newProductHtml.appendTo('.MyProductsContainer');