我看了這篇文章展示瞭如何通過使用編輯器模板http://coding-in.net/asp-net-mvc-3-how-to-use-editortemplates/MVC動態表單域
如何創建通過單擊「添加字段」按鈕,新的字段顯示動態字段?
我已經使用了這個,看了一些例子,但他們似乎太複雜,應該是一個簡單的過程。在PHP中,您只需將[]
附加到字段名稱的末尾,然後您可以通過循環運行它...
在MVC中應該有一種更簡單的方法,因爲它是較新的技術,對不對?
我看了這篇文章展示瞭如何通過使用編輯器模板http://coding-in.net/asp-net-mvc-3-how-to-use-editortemplates/MVC動態表單域
如何創建通過單擊「添加字段」按鈕,新的字段顯示動態字段?
我已經使用了這個,看了一些例子,但他們似乎太複雜,應該是一個簡單的過程。在PHP中,您只需將[]
附加到字段名稱的末尾,然後您可以通過循環運行它...
在MVC中應該有一種更簡單的方法,因爲它是較新的技術,對不對?
動態表單域可以容易如下完成:
型號:
public class MyViewModel
{
public string Name { get; set; }
public List<string> EmailAddresses { get; set; }
}
查看:
@model MyViewModel
@Html.TextboxFor(m => m.Name)
@* you can add as many of these as you like, or add them via javascript *@
<input type="text" name="EmailAddresses" />
<input type="text" name="EmailAddresses" />
<input type="text" name="EmailAddresses" />
@* you can also use razor syntax *@
@Html.Textbox("EmailAddresses")
控制器:
[HttpPost]
public ActionResult MyAction(MyViewModel model)
{
// note that model.EmailAddresses contains your list of email addresses
foreach (string email in model.EmailAddresses)
email = email; // do whatever you want with this...
return View();
}
這是否與客戶端驗證一起工作?例如,我們可以在ViewModel中添加[Required],並且MVC會處理@ValidationMessageFor? – 2015-08-25 12:20:55
@shyamalparikh是的,它將像MVC中提交的任何其他表單一樣影響ModelState。注意:我將'EmailAddresses []'改爲'EmailAddresses',看起來MVC不需要括號,並且包含它們會破壞它。 – user1477388 2015-08-26 18:04:57
它看起來像這可能是最簡單的工具ntation ...但是沒有人有更簡單的東西嗎? http://www.techiesweb.net/asp-net-mvc3-dynamically-added-form-fields-model-binding/ – user1477388 2013-05-01 15:37:34
看看這篇文章,它可能不完全是你正在尋找,但它可能會流下一些光http://roysvork.wordpress.com/2012/12/09/dynamic-repeating-field-groups-in-asp-net-mvc-with-just-a-dash-of-knockout-js/ – 2013-05-01 16:03:03
謝謝,但我已經看到一個。它使用knockout.js,我不這樣做。 – user1477388 2013-05-01 16:30:09