title: Console Application in C# to ASP.NET difficulties
body: <p>I am in the process of creating an ASP.NET application from a previous console application that I had created.  I am having problems while trying to do this.  The console application is a calculator to find the monthly payment for a loan. I am stuck on how to get the MonthlyPayment calculation to work in the ASP.NET coding.</p>
  
  <pre><code>using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Text;
  using System.Threading.Tasks;
  
  namespace LoanCalculator
  {
      public class LoanCalculator
      {
  
          public static void Main(string[] args)
          {
              // declare variables
              double principle = 0; 
              double years = 0;
              double interest = 0;
              string principleInput, yearsInput, interestInput;
  
  
              // User input for Principle amount in dollars
              Console.Write("Enter the loan amount, in dollars(0000.00): ");
              principleInput = Console.ReadLine();
              principle = double.Parse(principleInput);
              //Prompt the user to reenter any illegal input
              if (principle &lt; 0)
              {
                  Console.WriteLine("The value for the mortgage cannot be a negative value");
                  principle = 0;
              }
  
  
              // User input for number of years
              Console.Write("Enter the number of years: ");
              yearsInput = Console.ReadLine();
              years = double.Parse(yearsInput);
              //Prompt the user to reenter any illegal input
              if (years &lt; 0)
              {
                  Console.WriteLine("Years cannot be a negative value");
                  years = 0;
              }
  
              // User input for interest rate
              Console.Write("Enter the interest rate(%): ");
              interestInput = Console.ReadLine();
              interest = double.Parse(interestInput);
              //Prompt the user to reenter any illegal input
              if (interest &lt; 0)
              {
                  Console.WriteLine("The value for the interest rate cannot be a negative value");
                  interest = 0;
              }
  
              //Calculate the monthly payment
              //ADD IN THE .Net function call Math.pow(x, y) to compute xy (x raised to the y power). 
              double loanM = (interest / 1200.0);
              double numberMonths = years * 12;
              double negNumberMonths = 0 - numberMonths;
              double monthlyPayment = principle * loanM / (1 - System.Math.Pow((1 + loanM), negNumberMonths));
  
              //double totalPayment = monthlyPayment;
  
  
              //Output the result of the monthly payment
              Console.WriteLine(String.Format("The amount of the monthly payment is: {0}{1:0.00}", "$", monthlyPayment));
              Console.WriteLine();
              Console.WriteLine("Press the Enter key to end. . .");
              Console.Read();
  
          }
      }
  }
  </code></pre>
  
  <p>The page markup code I now have is</p>
  
  <pre><code>&lt;%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %&gt;
  
  &lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
  
  &lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
  &lt;head runat="server"&gt;
      &lt;title&gt;Monthly Mortgage Calculator&lt;/title&gt;
  &lt;/head&gt;
  &lt;body&gt;
      &lt;form id="form1" runat="server"&gt;
      &lt;div&gt;
      &lt;h1&gt;Monthly Payment Loan Calculator&lt;/h1&gt;
      &lt;/div&gt;
  
      &lt;asp:Label ID="Label1" runat="server" Text="Please enter the principle amount"&gt;&lt;/asp:Label&gt;
  &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
      &lt;asp:TextBox ID="txtPrinciple" runat="server" 
          ontextchanged="txtPrinciple_TextChanged"&gt;&lt;/asp:TextBox&gt;
      &lt;br /&gt;
      &lt;br /&gt;
      &lt;asp:Label ID="Label2" runat="server" 
          Text="Please enter the loan duration in years"&gt;&lt;/asp:Label&gt;
      &lt;br /&gt;
      &lt;asp:RadioButtonList ID="rblYears" runat="server" AutoPostBack="True" 
          onselectedindexchanged="rblYears_SelectedIndexChanged"&gt;
          &lt;asp:ListItem Value="15"&gt;15 Years&lt;/asp:ListItem&gt;
          &lt;asp:ListItem Value="30"&gt;30 Years&lt;/asp:ListItem&gt;
          &lt;asp:ListItem&gt;Other&lt;/asp:ListItem&gt;
      &lt;/asp:RadioButtonList&gt;
      &lt;br /&gt;
  &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
      &lt;asp:TextBox ID="txtYears" runat="server" Enabled="False"&gt;&lt;/asp:TextBox&gt;
      &lt;br /&gt;
      &lt;br /&gt;
      &lt;asp:Label ID="Label3" runat="server" Text="Please select the interest rate"&gt;&lt;/asp:Label&gt;
  &amp;nbsp;&amp;nbsp;&amp;nbsp;
      &lt;asp:DropDownList ID="ddlInterestRate" runat="server"&gt;
          &lt;asp:ListItem&gt;1&lt;/asp:ListItem&gt;
          &lt;asp:ListItem&gt;2&lt;/asp:ListItem&gt;
          &lt;asp:ListItem&gt;3&lt;/asp:ListItem&gt;
          &lt;asp:ListItem&gt;4&lt;/asp:ListItem&gt;
          &lt;asp:ListItem&gt;5&lt;/asp:ListItem&gt;
          &lt;asp:ListItem&gt;6&lt;/asp:ListItem&gt;
          &lt;asp:ListItem&gt;7&lt;/asp:ListItem&gt;
          &lt;asp:ListItem&gt;8&lt;/asp:ListItem&gt;
          &lt;asp:ListItem&gt;9&lt;/asp:ListItem&gt;
          &lt;asp:ListItem&gt;10&lt;/asp:ListItem&gt;
      &lt;/asp:DropDownList&gt;
      &lt;br /&gt;
      &lt;br /&gt;
      &lt;asp:Button ID="Button1" runat="server" onclick="Button1_Click" 
          Text="Monthly Payment" /&gt;
      &lt;br /&gt;
      &lt;br /&gt;
      &lt;asp:Label ID="Label4" runat="server"&gt;&lt;/asp:Label&gt;
  
      &lt;/form&gt;
  &lt;/body&gt;
  &lt;/html&gt;
  </code></pre>
  
  <p>Finally, my current aspx.cs code is:</p>
  
  <pre><code>using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Web;
  using System.Web.UI;
  using System.Web.UI.WebControls;
  
  public partial class _Default : System.Web.UI.Page
  {
      //double principle = 0;
      //double years = 0;
      double interest = 0;
      //string principalInput, yearsInput, interestInput;
  
      protected void Page_Load(object sender, EventArgs e)
      {
          if (!IsPostBack)
          {
              txtYears.Enabled = false;
          }
      }
      protected void Button1_Click(object sender, EventArgs e)
      {
          double principle = 0.0;
          double principleInput = double.Parse(txtPrinciple.Text);
  
          double years = double.Parse(txtYears.Text);
          var yearDuration = rblYears.SelectedValue;
  
          double interestInput = double.Parse(ddlInterestRate.SelectedValue);
  
          if (double.TryParse(txtPrinciple.Text, out principle))
          {
  
          }
      }
  
      protected void rblYears_SelectedIndexChanged(object sender, EventArgs e)
      {
          if (rblYears.SelectedIndex == 3)
              txtYears.Enabled = true;
          else
          {
              txtYears.Text = "";
              txtYears.Enabled = false;
          }
      }
      protected void txtPrinciple_TextChanged(object sender, EventArgs e)
      {
         // principle = double.Parse(txtPrinciple.Text);
  
      }
  }
  </code></pre>
  
  <p>I know this is not complete, I just kind of hit a road bump and am wondering if I am heading into the right direction or not.  If someone can please lead me the right way it would be greatly appreciated. Thank you all.</p>