2013-12-06 3 views
0

Я хочу перенаправить сообщение из/mynode в/eng/mynode/и сохранить данные формы. Я пробовал «Server.Transfer», но я получаю сообщение об ошибке «Ошибка выполнения дочернего запроса для/en/mynode».Как сохранить «почтовые данные» при перенаправлении

Я хотел бы реализовать это в общем виде, например, в методе OnPreInit() базовой страницы.

Есть ли другие варианты?

P.S. Когда вы используете Server.Transfer, «страница, перенесенная на страницу, должна быть другой .aspx-страницей. Например, перенос на страницу .asp или .asmx недействителен». См. source.

+2

http://msdn.microsoft.com/en-us/library/ms178139(v=vs.100).aspx – Abhitalks

+0

Пожалуйста, объясните: почему это не ответ на ваш вопрос? – Luaan

+0

Server.Transfer ожидает страницу .aspx. Когда я писал Server.Transfer («~/eng/mynode»), я получаю сообщение об ошибке: «Ошибка выполнения дочернего запроса» –

ответ

2

Я полагаю, вы можете написать что-то вроде:

protected void Page_Load(object sender, EventArgs e) { 
    Response.Clear(); 
    Response.Write(@"<html>"); 
    Response.Write(@"<body>"); 
    Response.Write(@"<form id=""form"" action=""/eng/mynode/"" method=""post"" enctype=""application/x-www-form-urlencoded"">"); 
    for(int i = 0; i < Request.Form.Count; i++) { 
    var key = Request.Form.GetKey(i); 
    var values = Request.Form.GetValues(i); 
    foreach(var value in values) { 
     Response.Write(string.Format(@"<input type=""hidden"" name=""{0}"" value=""{1}"" />", key, Server.HtmlEncode(value))); 
    } 
    } 
    Response.Write(@"</form>"); 
    Response.Write(@"<script>document.getElementById(""form"").submit();</script>"); 
    Response.Write(@"</body>"); 
    Response.Write(@"</html>"); 
} 
Смежные вопросы