Задали написать веб-приложение в visual studio.
Одно из 4 заданий выводится рандомно при загрузке страницы. пользователь должен перевести рандомно сгенерированное число в заданной системе счисления в 3 другие системы счисления. Внести 3 ответа в 3 TextBox.
Вроде написал, но у меня возникла пара проблем:
1. Рационально ли создавать 4 переменных под каждое задание или лучше сделать перевод непосредственно в задании (но потом при проверке делать повторный перевод числа)
2. При отладке, если нажать на кнопку Проверить, страница просто обновляется, никакого перенаправления на вторую страницу не происходит (аналогичный эффект у кнопки Обновить). Это происходит, даже если для события on click кнопок написать другой код, например, изменить текст в одном из Label. Не выводится сообщение о незаполненных полях.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Windows.Forms;
namespace WebApplication1
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Random A = new Random();
int k = A.Next(0, 100);
int n = A.Next(0, 4);
string k1 = k.ToString();
string s1 = Convert.ToString(k, 2).PadLeft(8, '0');
string s2 = Convert.ToString(k, 8);
string s3 = Convert.ToString(k, 16);
List<string> myQuest = new List<string>() { //список с заданиями, одно из них показывается
k1 + " из десятичной системы счисления в двоичную, восьмеричную и шестнадцатеричную:",
s1 + " из двоичной системы счисления в десятичную, восьмеричную и шестнадцатеричную:",
s2 + " из восьмеричной системы счисления в десятичную, двоичную и шестнадцатеричную:",
s3 + " из шестнадцатеричной системы счисления в десятичную, двоичную и восьмеричную:"
};
Label3.Text = myQuest[n]; //само задание
List<string> mySys = new List<string>() { //список с подписями над каждым TextBox
"десятичная", //один из элементов удаляется при соответствующем задании
"двоичная",
"восьмеричная",
"шестнадцатиричная"
};
mySys.RemoveAt(n);
Label5.Text = mySys[0];
Label6.Text = mySys[1];
Label7.Text = mySys[2];
}
protected void Button1_Click(object sender, EventArgs e) //Проверить
{
if (!(TextBox1.Text == null) && !(TextBox2.Text == null) && !(TextBox3.Text == null)) //Если заполнены все поля
{
Response.Redirect("Page2.aspx?var1=" + TextBox1.Text + "&var2=" + TextBox2.Text + "&var3=" + TextBox3.Text);
}
else { //если хотя бы одно поле не заполнено, выводится сообщение
DialogResult warning = MessageBox.Show("Вы ввели не все данные", "Повторите", MessageBoxButtons.OK, MessageBoxIcon.Warning);
if (warning == DialogResult.OK)
{
DataBind();
}
}
}
protected void Button2_Click(object sender, EventArgs e) //Обновить
{
DataBind();
}
}
}