#asp.net-mvc-3
#asp.net-mvc-3
Вопрос:
[Редактировать], чтобы попытаться уточнить:
У меня есть представление, которое необходимо запустить из внешнего приложения. Приложение требует, чтобы строковые данные передавались из внешнего приложения (данные представляют собой произвольный текст и слишком длинные для передачи в качестве параметра запроса), поэтому я хотел бы запустить приложение MVC с запросом POST. Запущенное представление также должно отправлять данные обратно самому себе, чтобы отправлять собранные данные для хранения в базе данных. Итак, я получаю представление с двумя помеченными HttpPost методами в моем контроллере (MVC выдает ошибку о том, что существуют неоднозначные методы создания).
Итак, в приведенном ниже коде Create() будет отправлен из внешнего приложения. Create(коллекция FormCollection) будет отправлена при отправке отображаемого представления.
//POST: /Application/Create
[HttpPost]
public ActionResult Create()
{
MyModel model = new MyModel();
//Parse External Data to model from Request.InputStream
return View(Model);
}
//POST: /Application/Create
[HttpPost]
public ActionResult Create(FormCollection collection)
{
//Save form collection data to database
return RedirectToAction("Index");
}
Короче говоря, как я могу отправить данные в приложение MVC для запуска представления без получения ошибки из-за неоднозначного вызова.
Спасибо.
Комментарии:
1. это немного сложно понять, особенно в части о необходимости называть контроллеры отдельно. можете ли вы пересмотреть немного подробнее? почему вы используете объект запроса, а не параметры в методе действия или FormsCollection. Вы можете изменить представление, к которому вы собираетесь, с помощью return View («xyz»), если это имеет значение здесь, но я не могу сказать реальный сценарий 🙂
2. Что вы хотите сделать с «представлением». Это то, что должен видеть пользователь, анализируется ли результат в приложении, сохраняется ли он на диске, …
3. Пользователь должен увидеть это, предоставить некоторую информацию, затем эта информация и часть переданных данных будут сохранены в базе данных.
4. Запускается ли представление из другого веб-приложения или из приложения, подобного windows.forms? Я имею в виду, нужно ли запускать браузер для выполнения post, или браузер уже активен?
5. Он запускается из другого веб-приложения, поэтому браузер уже активен.
Ответ №1:
в первом случае, когда метод post поступает извне:
return View("ConfirmCreate", модель)
Затем создайте метод действия с именем ConfirmCreate. После того, как ConfirmCreate вызывается во второй раз, вы перенаправите обратно в Index, как у вас есть.
Ответ №2:
Итак, я смог сделать это, изменив вызов POST для загрузки приложения на PUT, чтобы избежать дублирования конечных точек post), затем отправив PUT из вызова ajax в другом приложении и заменив текущий документ возвращенным HTML-кодом из успешного вызова ajax. Спасибо за предложения.