В небольшом веб-приложении, которое я создаю для внутреннего использования, я хочу, чтобы пользователь мог выбрать один из файлов данных для открытия. У меня строго типизированное представление, которое принимает список файлов в качестве модели.
Моя первоначальная версия имела действие Index, которое получало список файлов данных и возвращало представление, затем действие Create для создания нового файла и действие Upload для загрузки существующего файла. Тем не менее, в обоих случаях было бы плохо иметь совершенно новую страницу только для одного текстового поля и кнопки, поэтому я добавил две формы в представление «Индекс», одну для указания «Создать», другую для «Выгрузки», обе с использованием Почтовый глагол.
Это прекрасно работает, плюс все еще сохраняет хорошее наименование URL - даже при том, что Create / Upload не имеет пользовательского интерфейса. Проблема в том, что в конце обоих этих действий я делаю
return RedirectToAction («Индекс»);
Который по очереди получает данные для отображения и показывает вид - отлично. Но я не получаю подтверждения. Похоже, что для того, чтобы заставить работать помощники ValidationSummary и ValidationMessage, мне нужно, чтобы действие Post вызывалось так же, как действие Get (в данном случае Index). Я изменил все так, чтобы у меня было только действие Get / Post Index и оператор if в действии Post, чтобы увидеть, была ли кнопка Создать или Загрузить. Но это кажется гораздо более грубым решением, чем то, которое я изначально придумал.
Другой вариант, конечно, заключается в создании представлений для Create / Upload, каждое с одним текстовым полем, но я бы предпочел неуклюжий код, чем неуклюжий пользовательский интерфейс.
Есть ли что-то, что я пропускаю, или это просто способ разработки инфраструктуры валидации MVC.