2013-05-30 7 views
1

Я только что закончил работу над консольным приложением в ведьме. Я создал кредитный калькулятор. Мой код выглядит следующим образом:Кредитный калькулятор в ASP.NET от консольного приложения

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 < 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 < 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 < 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(); 

     } 
    } 
} 

Все выше работает как и планировалось. Теперь я пытаюсь преобразовать это в веб-приложение ASP.NET с помощью Visual Studio, и я застрял. Мой текущий пользовательский интерфейс, который я установил с тремя ярлыками для основного ввода (с текстовым полем), продолжительностью ссуды (с списком переключателей) и процентной ставкой (с dropdownList).

Моя проблема, с которой я столкнулась, заключается в том, что я пытаюсь получить список радиообмена для моей продолжительности займа (15, 30 или других) в качестве моих выборов. Если пользователь выбирает «Другое», я пытаюсь реализовать текстовое поле для ввода значения в годах. После того, как пользователь выберет свою предполагаемую продолжительность, я хочу, чтобы мой InterestRate был выпадающим списком с 1% -10% в качестве параметров.

У меня также есть кнопка под названием «Рассчитать», где она вычисляет решение с входа пользователя. Если кто-то может привести меня в правильное направление, как подойти к этому. Я совершенно новый для работы с ASP.NET, и я смущен, как успешно преобразовать консольное приложение в проект ASP.NET. Спасибо за помощь!

Моя страница выглядит следующим образом:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title>Monthly Mortgage Calculator</title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
    <h1>Monthly Payment Loan Calculator</h1> 
    </div> 

    <asp:Label ID="Label1" runat="server" Text="Please enter the principle amount">  </asp:Label> 
&nbsp;&nbsp;&nbsp;&nbsp; 
    <asp:TextBox ID="txtPrinciple" runat="server"></asp:TextBox> 
    <br /> 
    <br /> 
    <asp:Label ID="Label2" runat="server" 
     Text="Please enter the loan duration in years"></asp:Label> 
    <br /> 
    <asp:RadioButtonList ID="RadioButtonList1" runat="server" AutoPostBack="True"> 
     <asp:ListItem>15 Years</asp:ListItem> 
     <asp:ListItem>30 Years</asp:ListItem> 
     <asp:ListItem>Other</asp:ListItem> 
    </asp:RadioButtonList> 
    <br /> 
    nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp; 
    <asp:TextBox ID="txtYears" runat="server"></asp:TextBox> 
    <br /> 
    <br /> 
    <asp:Label ID="Label3" runat="server" Text="Please select the interest rate"> </asp:Label> 
&nbsp;&nbsp;&nbsp; 
    <asp:DropDownList ID="DropDownList1" runat="server"> 
     <asp:ListItem>1</asp:ListItem> 
     <asp:ListItem>2</asp:ListItem> 
     <asp:ListItem>3</asp:ListItem> 
     <asp:ListItem>4</asp:ListItem> 
     <asp:ListItem>5</asp:ListItem> 
     <asp:ListItem>6</asp:ListItem> 
     <asp:ListItem>7</asp:ListItem> 
     <asp:ListItem>8</asp:ListItem> 
     <asp:ListItem>9</asp:ListItem> 
     <asp:ListItem>10</asp:ListItem> 
    </asp:DropDownList> 
    <br /> 
    <br /> 
    <asp:Button ID="Button1" runat="server" Text="Monthly Payment" /> 

    </form> 
</body> 
</html> 
+0

Опубликовать некоторые из ваших код разметки asp, как выглядит страница –

+0

@Mikey Mouse Код обновлен – DaBulls33

+0

Выглядит хорошо. Вам нужно добавить метод OnClick либо к разметке кнопок, либо по вашему коду. Позади «+ =» В моем решении есть пример, поставьте точку останова, чтобы увидеть, работает ли она –

ответ

2

Вот некоторые общие шаги, чтобы преобразовать проект. Если вам нужен код, дайте мне знать, какой бит.

1) Создайте пустой ASP.Net приложение (не веб-страницы)

2) Добавить некоторые asp.net теги для разметки (не код позади) Это будет выглядеть как

  <asp:TextBox ID="tbYears" runat="server" /> 
      <asp:RadioButtonList ID="rblDuration" runat="server" > 
       <asp:ListItem Text="15" Value="15" /> 
        ... 
      </asp:RadioButtonList> 
      <asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClick="btnSubmit_Click" /> 

3) поместить любой код запуска в вашем Page_Load метод

 protected void Page_Load(object sender, EventArgs e) 
    { 
    } 

4) Написать свой щелчок кнопки событие

protected void btnSubmit_Click(object sender, EventArgs e) 
    { 
      double years = double.parse(tbYears.text); // This will throw an exception if a user doesn't input a number 
      var duration = rblDuration.SelectedValue // Needs to be cast too as it comes back as a string 
    } 

Это поможет вам начать

Edit:

Еще один совет: Изменение

  <asp:ListItem>15 Years</asp:ListItem> 

в

  <asp:ListItem Value="15" Text="15 Years" /> 

Облегчает разобрать значение

+0

@ DaBulls33 Выглядит хорошо, в код разметки, попробуйте назвать свои элементы управления, чтобы кто-то, просматривая код, мог видеть, что происходит. Поэтому вместо «DropDownList1» назовите его «ddlInterestRate» (просто подсказка) –

+0

@Mickey Я просто запутался, как запустить событие нажатия кнопки и как получить ежемесячный платежный код, работающий в этом приложении. – DaBulls33

+0

Хорошо, поставьте код OnClick = "btnSubmit_Click" в разметке вашей кнопки. Поместите метод «protected void btnSubmit_Click», как указано выше, в том же классе, что и ваш Page_Load, как правило, чуть ниже него. Поместите точку останова на этот метод. Запустите веб-сайт и нажмите кнопку «Отправить» ... он должен остановиться в точке останова –

0

В общем, вы сможете использовать ту же логику, за исключением того, что я перейду к ней в класс.

1) Если у вас консольные входы, вы сможете использовать текстовое поле. 2) Если у вас есть результат в WriteLine(), вы можете использовать Label для отображения результата.

Страницы ASP.NET будут иметь .aspx-файл, который будет содержать разметку (HTML) и файл .cs, в котором будет храниться код. Элементам страницы могут быть присвоены события, которые будут вызывать метод в коде.

Например, выберите кнопку отправки в представлении проекта и найдите кнопку событий на панели «Свойства». Вы можете добавить новое событие для нажатия кнопки. Какой будет сопоставлена ​​щелчок кнопки для метода в коде:

protected void importBtn_Click(object sender, EventArgs e) 
{ 
    Textbox1.Text = "Editing the Textbox contents"; 
} 

Вы можете получить доступ к свойствам элементов управления, как показано на рисунке.

Удачи, надеюсь, это поможет.

+0

, поэтому мне действительно нужно создать событие TextChanged для Принципа и поместить код ввода пользователя, который у меня есть для консольного приложения в этом случае? – DaBulls33

+0

Вы могли бы это сделать, вместо того чтобы использовать событие кнопки отправки, если хотите, да - тогда это будет случай установки свойства текста метки вместо Console.WriteLine(). – anthr

Смежные вопросы