Nous effectuons une ancienne section reskin qui est écrite en ASP classique et qui est en cours de refonte dans Asp.net MVC. Le contenu de certaines pages doit juste être tiré dans une nouvelle mise en page. J'ai donc écrit une méthode d'aide qui lit essentiellement le fichier ASP et rend le contenu dans la vue actuelle.Transmettre les données postées du formulaire MVC à une page ASP
public static string readHtmlPage(string url)
{
try
{
string host = HttpContext.Current.Request.Url.Host;
url = "http://" + host + url;
WebResponse objResponse;
WebRequest objRequest = System.Net.HttpWebRequest.Create(url);
objResponse = objRequest.GetResponse();
StreamReader sr = new StreamReader(objResponse.GetResponseStream());
return sr.ReadToEnd();
}
catch (Exception ex)
{
return "If include file cannot be found you will see this message. This is temporary:" + url;
}
}
et sa grande et travaille pour la majorité des cas de pages quand je dois passer les chaînes de requête dans les urls.
Cependant, j'ai une page contact.asp qui est un formulaire qui enregistre à lui-même pour faire la validation avant d'envoyer l'e-mail ou quoi que ce soit.
Y a-t-il un moyen que je peux juste faire publier sur le mvc, puis passer les données post?
Actuellement, je fais cela pour les pages que je dois passer quelques informations à
<%=IncludeHelper.readHtmlPage("/press_room/recent.inc.asp?type="+ ViewData["type_id"]) %>
Je ne peux pas recommander cette façon d'inclure le contenu. Pourquoi ne pas simplement utiliser un IFrame pour des pièces que vous ne pouvez pas reconstruire dans MVC? Faire une demande Web de MVC à un autre serveur Web pour rendre le contenu semble inefficace, et vous demandez des problèmes pour les scénarios de formulaire. – calebt
en fait, il est sur le même serveur donc c'est un peu comme faire du côté serveur inclure. Je ne l'aime pas particulièrement, mais dans les circonstances, c'est ce que je dois faire pour répondre aux exigences et aux délais. –
Non, ce n'est pas quelque chose comme faire un SSI. Bien que vous n'ayez pas de latence de réseau dans ce cas, vous continuez à faire une requête http et à restituer la réponse dans votre flux, bloquant les threads sur votre serveur tout le temps. Au moins cache-le homme. –