Как мне отправить данные из контроллера MVC asp.net на страницу asp.net не из MVC? - PullRequest
11 голосов
/ 06 января 2011

Один отдел в нашей компании использует классический asp.net, в то время как наш отдел использует MVC.

Нам нужно передать 5 переменных на его страницу (при отправке формы).Может кто-нибудь показать простой пример размещения данных формы с контроллера MVC на странице asp.net, ожидающей переменную формы?

Ответы [ 3 ]

13 голосов
/ 06 января 2011

Если я правильно читаю, вы сможете сделать это без каких-либо проблем между доменами и приложениями.Вы хотите сделать это в контроллере, поэтому вы можете использовать класс HttpWebRequest для публикации данных.Концептуально это то же самое, что и публикация в веб-браузере в отношении целевого приложения.

Вот быстрый и грязный фрагмент:

// name / value pairs. field names should match form elements
string data = field2Name + "=" + field1Value + "&" + field2Name+ "=" + field2Value

HttpWebRequest request = (HttpWebRequest) WebRequest.Create(<url to other applications form action>);

// set post headers
request.Method = "POST";
request.KeepAlive = true;
request.ContentLength = data.Length;
request.ContentType = "application/x-www-form-urlencoded";

// write the data to the request stream         
StreamWriter writer = new StreamWriter(request.GetRequestStream());
writer.Write(data);

// iirc this actually triggers the post
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
0 голосов
/ 06 января 2011

Возможно, мне не хватает тонкой проблемы, но нельзя ли просто установить action в форме MVC на URL классической страницы asp, которая его получит?

Поля будут доступныв заголовках форм, которые вы можете прочитать на стороне ASP.

Единственная проблема будет в том, если сайт ASP обнаружит подделку межсайтовых запросов (но если они являются внутренними приложениями, вы можете добавить исключение ккод обнаружения подделки на стороне ASP).

0 голосов
/ 06 января 2011

Если вы пересекаете домены или приложения, я думаю, вам не повезло.Можете ли вы перейти на другой сайт и использовать строку запроса?

Или написать в таблицу и перейти на другой сайт.

Действительно не уверены, что сможете публиковать на другом сайтекак я думаю, это идет вразрез с моделью безопасности.

...