我有一个包含卖家集合的视图模型的部分视图。我遍历所有卖家以呈现列表。这是视图模型:
public class SellersPartialViewModel
{
public IList<OrderViewModel> Sellers { get; set; }
}
在部分视图中,当我遍历集合时,我使用 Html.BeginCollectionItem("Sellers"),这是我的部分代码(仅供参考,我已经剥离了很多不需要的无用代码) ):
<div id="sellers-list">
@{
var i = 0;
while (i < Model.Sellers.Count) {
var seller = Model.Sellers[i];
using (Ajax.BeginForm(MVC.Video.PurchaseShares(), purchaseSharesAjaxOptions, new { @class = "seller-form", id = "seller-form-" + i })) {
@using(Html.BeginCollectionItem("Sellers")) {
@Html.TextBoxFor(m => seller.Qty, new { @class = "buyer-qty" })
@Html.ValidationMessageFor(m => seller.Qty)
<input class="buyer-qty-submit" name="Qty" type="hidden" value="" />
<button type="submit">Buy</button>
}
}
}
i++;
}
}
</div>
这可以很好地呈现部分并让客户端验证正常工作,但是我希望每个卖家都有名为的输入qty
和orderId
一个名为PurchaseShares(int orderId, int qty)
.
唯一的问题是表单是使用奇怪的 GUID 提交的Sellers[5b5fd3f2-12e0-4e72-b289-50a69aa06158].seller.Qty
,我理解这对于提交集合是正确的,但我不需要这样做。
现在我有一些 Javascript 正在更新class="buyer-qty"
他们选择的任何内容,它工作正常,但必须有更好的方法来做到这一点,不是吗?
谢谢