Как перенести значения с одной страницы на другую страницу в asp.net, используя vb

StackOverflow https://stackoverflow.com/questions/4812858

Вопрос

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

Когда я нажимаю кнопку «Отправить», эти значения должны отображаться на другой странице. Может ли кто -нибудь привести пример для этого ... Я полностью запутался.

Пожалуйста, помогите мне спасибо

Это было полезно?

Решение

MSDN имеет страницу на этом, Как: пройти значения между веб -страницами ASP.NET:

Следующие параметры доступны, даже если страница источника находится в другом веб -приложении ASP.NET на целевой странице, или если страница источника не является веб -страницей ASP.NET:

  • Используйте строку запроса.
  • Получите информацию о публикации HTTP со страницы источника.

Следующие параметры доступны только тогда, когда исходные и целевые страницы находятся в том же веб -приложении ASP.NET.

  • Используйте состояние сеанса.
  • Создайте общедоступные свойства на странице источника и обратитесь к значениям свойств на целевой странице.
  • Получите управляющую информацию на целевой странице от элементов управления на странице источника.

Для вашего сценария, похоже, что использование Post - это путь, так как у вас есть текстовые поля на первой странице. Пример:

Первая страница:

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="WebForm1.aspx.vb" Inherits="WebApplication2.WebForm1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
  <title>Page 1</title>
</head>
<body>
  <form id="form1" runat="server" action="WebForm2.aspx">
  <div>
    Name: <asp:TextBox ID="tbName" runat="server"></asp:TextBox><br />
    Age: <asp:TextBox ID="tbAge" runat="server"></asp:TextBox><br />
    <asp:Button ID="submit" runat="server" Text="Go!" />
  </div>
  </form>
</body>
</html>

Обратите внимание на action="WebForm2.aspx" который направляет сообщение на вторую страницу. Там нет кода-бензина.

Страница 2 (получение страницы):

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="WebForm2.aspx.vb" Inherits="WebApplication2.WebForm2" EnableViewStateMac="false" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Page 2</title>
</head>
<body>
    <form id="form1" runat="server">
    <asp:Literal ID="litText" runat="server"></asp:Literal>
    </form>
</body>
</html>

Обратите внимание на EnableViewStateMac="false" атрибут на элементе страницы. Это важно.

Код-блуждая, захватывая значения, используя простые Request.Form():

Public Class WebForm2
  Inherits System.Web.UI.Page

  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    litText.Text = Request.Form("tbName") & ": " & Request.Form("tbAge")
  End Sub
End Class

Это должно работать ... :)

Другие советы

Поместите этот код в обработчик событий кнопки отправки,

private void btnsubmit_click (отправитель объекта, system.eventargs e) {response.redirect ("oreverpage.aspx? name =" + this.txtname.text + "& age =" + this.txtage.text); }

Поместите этот код во вторую страницу Page_load,

private void page_load (отправитель объекта, system.eventargs e) {this.txtbox1.text = request.querystring ["name"]; this.txtbox2.text = request.querystring ["age"]; }

У вас есть пара вариантов. **

1. Используйте строку запроса.


(Cons)
  - Text might be too lengthy 
  - You might have to encrypt/decrypt query string based on your requirement 
(Pros)
  - Easy to manage

2. Используйте сеанс

(Cons)
  - May increase processing load on server
  - You have to check and clear the session if there are too many transactions
(Pros) 
  - Values from different pages, methods can be stored once in the session and retrieved from when needed
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top