Целевая страница 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;
}
}