我在Visual Studio 2012中工作,我在尝试通过标签显示一个简单的错误消息时遇到问题,该标签是我在“年”期间创建的文本框。例如,如果用户在txtYears文本框中输入“dfasdfsa”,则会显示错误“年份必须是数字值”。为了更清楚,我将提供ID代表的内容。
txtPrincliple = Priciple amount for a loan
txtYears = duration of the loan in years
lblResult = Result to the button click and the solution
rblYears = radiobuttonList for duration in years
MonthlyPayment() = is a created method that returns the Monthly payment from provide input
protected void Button1_Click(object sender, EventArgs e)
{
bool error = false;
//Display Error if non numeric is entered
if (!double.TryParse(txtPrinciple.Text, out principle))
{
error = true;
lblResult.Text = "The principle must be a numeric value!";
}
//Get the values
if (rblYears.SelectedIndex == 0)
years = 15;
else if (rblYears.SelectedIndex == 1)
years = 30;
else
double.TryParse(txtYears.Text, out years);
//Display Error if custom duration is entered
if (!double.TryParse(txtYears.Text, out years))
{
error = true;
lblResult.Text = "The years must be a numeric value!";
}
//Get interest rate value
double.TryParse(ddlInterestRate.SelectedValue, out interest);
//Output the Monthly Payment if no errors
if (!error)
{
lblResult.Text = string.Format("Your total monthly payment is {0}{1:0.00}", "$", MonthlyPayment());
}
}
答案 0 :(得分:2)
从我看到的,问题似乎来自于即使用户从RBL中选择了某些内容,您也会进行错误验证。我不完全确定我理解这个问题,但不是很清楚。
如果将其更改为
,它应该有效//Get the values
if (rblYears.SelectedIndex == 0)
years = 15;
else if (rblYears.SelectedIndex == 1)
years = 30;
else
{
//Display Error if custom duration is entered
if (!double.TryParse(txtYears.Text, out years))
{
error = true;
lblResult.Text = "The years must be a numeric value!";
}
}
我还删除了冗余的第一个TryParse(因为你在验证时这样做了)