我们正在做一个用经典asp编写的旧版reskin,它正在Asp.net MVC中重新制作。某些页面的内容只需要拉入新的布局。所以我编写了一个辅助方法,基本上读取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;
}
}
它很棒,适用于大多数页面事件,当我必须在URL中传递查询字符串时。
但是我有一个contact.asp页面,它是一个在发送电子邮件或其他任何内容之前发布自己进行验证的表单。
有没有办法可以让它发布到mvc然后传递帖子数据?
目前我正在为需要将一些信息传递给
的网页执行此操作 <%=IncludeHelper.readHtmlPage("/press_room/recent.inc.asp?type="+ ViewData["type_id"]) %>
答案 0 :(得分:1)
当您获取contact.asp的StreamReader时,该页面不再是传统的ASP - 它只是HTML。因此,您可以更改表单操作以发布到例如MVC控制器的操作,然后在那里解析表单数据(可能您需要使用旧式的response.redirect来执行此操作,具体取决于联系人。 asp的表单输入名称。)
您需要解析StreamReader中的HTML内容才能执行此操作,这可能很简单,或者可能很难,具体取决于标记。
此外,您需要在MVC应用程序中复制验证功能和电子邮件/持久性功能(良好实践说应该在您的模型中,因此您还需要复制ASP应用程序的模型,如果你有一个)。