我有一個頁面與相同的輸入框添加了很多次。將一些項目添加到模型列表中?
@Html.TextBoxFor(m => m.Product)
@Html.TextBoxFor(m => m.Product)
@Html.TextBoxFor(m => m.Product)
如何將其綁定到模型。
我已經試過:
public class Shop
{
public string ShopName { get; set; }
[Remote("ProductExists", "Account", AdditionalFields = "ShopName", ErrorMessage = "Product is already taken.")]
public List<String> Product { get; set; }
}
但我只能看不到第一個字段中的數據。我也試過:
@Html.TextBoxFor(m => m.Product[0])
@Html.TextBoxFor(m => m.Product[1])
@Html.TextBoxFor(m => m.Product[2])
但遠程驗證不起作用,所以我有點難倒在這裏。我想要實現的基本目標是將商品清單發送給商店,以便通過遠程調用功能來驗證它。我試圖把產品放在自己的公共課堂上,但是後來我無法從該課堂中訪問商店名稱。
這是控制器動作,我嘗試使用:
public JsonResult ProductExists(List<String> Product, string ShopName)
任何想法我怎麼能解決這個問題將這麼多的讚賞?
編輯
這個半的工作,但遠程驗證仍然不流通SHOPNAME:
public class Shops
{
[Required]
public string ShopName { get; set; }
public List<Products> Product { get; set; }
}
public class Products
{
[Required]
[Remote("ProductExists", "Home", AdditionalFields = "ShopName", ErrorMessage = "Product is already taken.")]
public String Product { get; set; }
}
控制器動作:
public JsonResult ProductExists(List<String> Product, string ShopName)
{
return Json(true, JsonRequestBehavior.AllowGet);
}
查看:
@model Shop.Models.Shops
@{
ViewBag.Title = "Shop";
}
<h2>Shop</h2>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"> </script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Shop</legend>
<div class="editor-label">
@Html.LabelFor(model => model.ShopName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.ShopName)
@Html.ValidationMessageFor(model => model.ShopName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Product[0])
@Html.ValidationMessageFor(model => model.Product[0])
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Product[1])
@Html.ValidationMessageFor(model => model.Product[1])
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Product[2])
@Html.ValidationMessageFor(model => model.Product[2])
</div>
<input type="submit" value="Create" />
</fieldset>
}
文本框的數量由控制器動態給出一個數字或取決於有多少要添加的用戶? –
取決於用戶想要添加的數量!現在我只想做一個簡單的例子 – Sparkle
您可以檢查ShopName和Product文本框並查看名稱設置爲?我也認爲在你的控制器行爲應該是'串產品'而不是'列表產品' –
keshav