Целевая страница aspx не отображается при кросспостинге

Я новичок в ASP.NET. Я экспериментирую с веб-формами. У меня есть 2 страницы: NewOrder.aspx, который фиксирует заказ пользователя, а затем создает перекрестные ссылки в SaveOrder.aspx, где я хочу сохранить заказ и отобразить некоторую информацию обратно пользователю.

 <telerik:RadButton ID="BtnSubmirOrder" runat="server" ButtonType="StandardButton" AutoPostBack="true"
                Text="Place order" PostBackUrl="SaveOrder.aspx">
 </telerik:RadButton>

Когда SaveOrder.aspx загружен, приведенный ниже код устанавливает его управляющие значения и сохраняет порядок. однако браузер остается на NewOrder.aspx.

protected void Page_Load(object sender, EventArgs e)
    {
        if (PreviousPage==null || !PreviousPage.IsCrossPagePostBack)
            Response.Redirect("~/Default.aspx");

        var referencingPage = PreviousPage as NewOrder;
        int id = Int32.Parse(referencingPage.SelectedPublicationId);


        DateTime neededBy = referencingPage.SelectedOrderDate;

        LblSummaryIsbn.Text = referencingPage.SelectedIsbn;
        LblSummaryNbrCopies.Text = referencingPage.NbrOfOrderedCopies;
        DateTime orderDate = DateTime.Now;
        LblSummaryOrderDate.Text = orderDate.ToShortDateString();
        LblSummaryTitle.Text = referencingPage.SelectedPublicationTitle;
        int quantity = Int32.Parse(referencingPage.NbrOfOrderedCopies);
        StockContainer _context = new StockContainer();
        Order newOrder = Order.CreateOrder(orderDate, quantity, neededBy, id);
        _context.Orders.AddObject(newOrder);
        _context.SaveChanges();
    }

Я вижу из javascript, что при нажатии кнопки действие формы устанавливается на SaveOrder.aspx, так почему браузер не отображает его?

1 ответ

Я думаю, что причина вашего браузера в NewOrder.aspx заключается в том, что у вас нет события нажатия кнопки, связанного с вашей кнопкой. Не видя остальной части вашего кода, я не уверен, почему действие формы выглядит иначе.

Вы можете сделать что-то вроде следующего, чтобы ввести событие нажатия кнопки. Логика перенаправления может пойти туда.

Разметка:

<telerik:RadButton ID="btnSubmit" runat="server" Text="Place Order" 
OnClick="btnSubmit_Click" />

Код:

public class NameOfPage
{
    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        // You could do validation here and display an error message if something is not right.
        // For simplicity I am assuming the data comes from a set of textboxes.
        if (!PageIsValid())
        {
            return;
        }

        StockContainer _context = new StockContainer();
        Order newOrder = Order.CreateOrder(txtOrderDate.Text, txtQuantity.Text, txtNeededBy.Text, id);
        _context.Orders.AddObject(newOrder);
        _context.SaveChanges();
        // Add your redirect logic here.
    }

    private bool PageIsValid()
    {
        if (string.IsNullOrEmpty(txtOrderDate.Text))
        {
            return false;
        }

        if (string.IsNullOrEmpty(txtQuantity.Text))
        {
            return false;
        }

        // and so on for the other fields that are required.
        return true;
    }
} 
Другие вопросы по тегам