Ах неправильно поняли это.
Если вы знаете, что Dropdowns потенциально может быть добавлено, я всегда буду иметь ценность для вашей модели. MVC установит их как значение по умолчанию, если ничего не получено.
EDIT: Вы все еще можете получить доступ к коллекции форм в более сыром способе из жгутов контроллеров с использованием
Request.Form.Keys
Request.QueryString.Keys
Request["ExpectedDropdownName"]
Конечно они будут все значения, размещенные в форме, так что вы будете нуждаться в пути, чтобы признать одну из ваши выпадающие списки, как префикс или что-то в этом роде. Например
foreach (var key in Request.Form.AllKeys.Where(k => k.StartsWith("dynamic-dropdown-"))
{
var selectedValue = Request[key];
}
Я до сих пор не понимаю, как вы собираетесь обрабатывать динамические выпадающие если вы не знаете, что они будут, и это может вызвать некоторые проблемы и сделать проверки полностью динамической и на стороне клиента (не на 100% безопасно). Это может привести к некоторым проблемам безопасности, но есть некоторые sceanarios, где вы можете использовать это, и я предполагаю, что у вас есть один из них.
Если это не так, не забывайте, что только потому, что у модели есть свойство, ее вообще не нужно оставлять на обратной стороне.
Вы можете сделать:
public class MyModel
{
[Required]
public string FirstName { get; set; }
public string PossibleDropdown1 { get; set; }
public string PossibleDropdown2 { get; set; }
}
Контроллер будет делать это лучше, чтобы заполнить модель, но если вы не сдадите некоторые поля обратно из формы, они будут просто утратившим действие будет по-прежнему Работа.
Я также реализовал гораздо более сложные сценарии, подобные этому, используя объекты, являющиеся дочерними элементами родительской модели, и все значения NULL. Это требует немного причудливой работы вокруг ajax-вызовов EditorTemplates в mock Views, чтобы гарантировать, что префикс подходит для анализа MVC, но я не буду вдаваться в это здесь.
вы пытались с помощью AJAX –
@COLDTOLD это проблема на стороне сервера, Ajax не является решением, которое будет иметь какое-либо влияние –
@Marek Karbarz вы можете обновить частичную часть страницы путем добавления новых элементов с помощью AJAX –