Есть ли простой способ передать данные в приложение MVC3?

#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. Спасибо за предложения.