2010-10-23 10 views
5

Robię stronę internetową (http://example.com/calculation/). Ta strona wykona proste obliczenia. Strona wyświetli użytkownikowi dwa pola wprowadzania w postaci pól tekstowych (asp: TextBox). Zastanawiam się, jak mam postępować z klikaniem przycisku "Calc" (asp: Button)?Właściwy sposób obsługi kliknięć przycisków w asp.net mvc?

Czy używam kontrolera do strony, ponieważ używam szablonu MVC? Jak zorganizować mój kod?

Chcę pobrać dane wejściowe użytkowników w dwóch polach tekstowych i wyprowadzić wartość na etykiecie "wynik".

+0

Czy zamierzasz to zrobić przez Ajax? – ahsteele

+0

nope. po prostu prześlij dane, oblicz i zwróć wartość. – Jason94

Odpowiedz

12

Najprostszy czysty sposób zapewnia klasę modelu, kontroler i widok. Proszę spojrzeć na poniższy przykład:

modelu:

public class CalculatorModel { 
    public int Result { get; set; } 
    public int FirstOperand { get; set; } 
    public int SecondOperand { get; set; } 
} 

Kontroler:

public class CalculatorController : Controller { 
    [HttpGet] 
    public ActionResult Sum() { 
     CalculatorModel model = new CalculatorModel(); 
     //Return the result 
     return View(model); 
    } 

    [HttpPost] 
    public ActionResult Sum(CalculatorModel model) { 
     model.Result = model.FirstOperand + model.SecondOperand; 
     //Return the result 
     return View(model); 
    } 
} 

Widok:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<CalculatorModel>" %> 

    <% using (Html.BeginForm("Sum", "Calculator", FormMethod.Post, new { id = "calcForm" })) { %> 
     <table border="0" cellpadding="3" cellspacing="1" width="100%"> 
     <tr valign="top"> 
      <td> 
       <%= Html.LabelFor(model => model.FirstOperand) %> 
       <%= Html.TextBoxFor(model => model.FirstOperand) %> 
      </td> 
     </tr> 
     <tr valign="top"> 
      <td> 
       <%= Html.LabelFor(model => model.SecondOperand) %> 
       <%= Html.TextBoxFor(model => model.SecondOperand) %> 
      </td> 
     </tr> 
     </table> 
     <div style="text-align:right;"> 
      <input type="submit" id="btnSum" value="Sum values" /> 
     </div> 
    <% } %> 

Moja rada jest, aby przestrzegać pewnych tutorial na ASP .NET MVC. Możesz znaleźć wiele z google. ASP.NET MVC web site jest dobrym miejscem do rozpoczęcia.

Mam nadzieję, że pomoże!

+0

Właśnie tego szukałem, dzięki! – Jason94

+0

@ Jason94: Nie ma za co. – Lorenzo

+0

Dobra, czysta odpowiedź. +1 – RPM1984

3

Uważam, że twoje pytanie jest zależne od wspólnego nieporozumienia dla nowych osób do wzoru projektu MVC. W modelu MVC sposób organizacji modelu, widoku i kontrolerów jest kwestią preferencji.

Powiedział, że ramy internetowe, takie jak ASP.NET MVC, sugerują pewne organizacje, ponieważ mają tendencję do ujawniania implementacji wzorców za pośrednictwem adresów URL witryny. Aby zilustrować po wyjęciu z pudełka, środowisko ASP.NET MVC utworzy tę trasę http://example.com/calculation/add dla działania kontrolera kalkulatora o nazwie add. Jako programista możesz zastąpić to zachowanie, tworząc custom routes, co oznacza, że ​​powinieneś uporządkować swoje modele, widoki i kontrolery w sposób, który będzie dla ciebie logiczny.

Ponieważ z definicji twoja strona wykonuje tylko proste obliczenia, poleciłabym stworzyć pojedynczy kontroler z różnymi działaniami: dodawać, odejmować, dzielić itp. Lorenzo stanowi podstawę, jak zacząć w his answer.

Powiązane problemy