Aug
30
2009

Ett enkelt BMI-test i asp.net c#


Det här exemplet passar utmärkt för dig som precis håller på att lära dig .net-programmering med c#. Exemplet visar hur du enkelt kan skapa ett BMI-test genom att läsa av textfält och anropa funktioner med knapptryck. För att kunna köra program måste du ha Visual studio med .net 2.0 eller 3.5 tillsammans med C#.

HTML-delen (Default.aspx)

Asp.net-sidor består vanligtvis av två separata sidor, en html-del och en code-behind del där programmeringen sker. På så sätt kan du enkelt och snyggt designa dina hemsidor och få en tydlig översikt över vad som händer.

Så här ser HTML-delen ut. Lägg märke till att formuläret inte består av traditionella taggar som tex <input>. Istället används <asp:TextBox> och <asp:Button> som sedan omvandlas till vanlig html automatiskt.

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<html>
<head>
	<title>Räkna ut bmi</title>
</head>
<body>
	<form id="form1" runat="server">
	<h1>Räkna ut ditt BMI</h1>
		<table>
			<tr>
				<th>Din längd:</th>
				<td><asp:TextBox ID="length" runat="server" Columns="3" />cm</td>
			</tr>
			<tr>
				<th>Din vikt:</th>
				<td><asp:TextBox ID="weight" runat="server" Columns="3" />kg</td>
			</tr>
			<tr>
				<td colspan="2"><asp:Button Text="Räkna ut bmi" runat="server" OnCommand="BMItest" /></td>
			</tr>
		</table>
		<asp:Label runat="server" ID="result"></asp:Label>
	</form>
</body>
</html>

Ovan kan vi se ett enkelt forumulär där vi frågar användaren om indata. Lägg särskilt märke till input-fältens Id-nummer eftersom det är dessa som sedan används för att få tag på datat. Förutom fälten för indata finns även en knapp (asp:button) som anropar funktionen BMItest vid kommando.

KOD-delen (Default.aspx.cs)

Precis som i vanligt C#-programmering utgörs programmeringen med hjälp av klasser och objekt. När man skapar en ny sida i Visual studio skapas en kodfil automatiskt. Kodfilen har samma namn som den skapade sidan förutom filändelsen .cs (c-sharp).

På den här sidan har vi lagt in en funktion BMItest, dvs den funktion som anropas då användaren trycker på knappen ”Räkna ut bmi”.

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) {

}

protected void BMItest(object sender, EventArgs e) {

string length_str = this.length.Text;
string weight_str = this.weight.Text;

try {

double length = Double.Parse(length_str) / 100;
double weight = Double.Parse(weight_str);

double bmi = weight / (length * length);

this.result.Text = ”Ditt BMI är ” + bmi;

} catch (FormatException) {
this.result.Text = ”Fel indata”;
}
}
}

Datat hämtas genom de ID-nummer som vi specificerade in .aspx-filen. Övrig kod är precis som vanligt C# och vilket är lite utan tjusningar med Asp.net. Det går att skilja html från programmeringen på enkelt och snyggt sätt.

Tryck här för att se resultatet

För er som inte vet vad bmi är kan läsa om det på bmitest.se eller wikipedia.

1 Kommentar + Lämna en kommentar

  • Fint skript! Perfekt för mig om jag ska lära mig ASP i framtiden.
    Annars kanske man skulle göra en php version av detta? :P

Lämna en kommentar

Relaterat

Övrigt

  • Internet bloggar
  • Internet