Response.Redirect(Request.Url.AbsoluteUri) и MultiView1.SetActiveView
У меня есть форма для отправки. когда пользователь нажимает кнопку "Сохранить", он должен установить активный просмотр multiview1 в view2. Я добавил Response.Redirect(Request.Url.AbsoluteUri); запретить пользователям нажимать кнопку F5 и отправлять форму снова и снова, но это приводит к тому, что multiview1 не устанавливает активное представление для view2, а после отправки формы все еще показывает view1
protected void btnSubmitAd_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
Ads ad = new Ads
{
Title = txtAdTitle.Text,
Dec = txtAdText.Text,
Name = txtName.Text,
Email = txtEmail.Text
};
context.Ads.Add(ad);
context.SaveChanges();
MultiView1.SetActiveView(View2);
Response.Redirect(Request.Url.AbsoluteUri);
}
}
и это мое событие загрузки страницы:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack) {
MultiView1.SetActiveView(View1);
}
}
1 ответ
Решение
Приведенный ниже код всегда устанавливает вид на View1.
if (!Page.IsPostBack)
{
MultiView1.SetActiveView(View1);
}
Если вы хотите установить ActiveView
к определенному представлению после перенаправления, то вы где-то установили свою информацию представления. лайк Session
или же QueryString
Код строки запроса будет выглядеть так:
protected void btnSubmitAd_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
Ads ad = new Ads
{
Title = txtAdTitle.Text,
Dec = txtAdText.Text,
Name = txtName.Text,
Email = txtEmail.Text
};
context.Ads.Add(ad);
context.SaveChanges();
//MultiView1.SetActiveView(View2); No need for that as it will be lost after redirect...
//Append your ActiveView information in query string with Request.Url.AbsoluteUri
Response.Redirect(Request.Url.AbsoluteUri + "?activeView=View2");//
}
}
И на PageLoad
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
string activeView = Request.QueryString["activeView"]
if(!string.IsNullOrEmpty(activeView) && activeView == "View2")
MultiView1.SetActiveView(View2);
else
MultiView1.SetActiveView(View1);
}
}