Donc, je viens d'expérimenter avec ASP.NET MVC et je commence vraiment à aimer la façon dont tout a un seul but (en ce qui concerne la séparation des objectifs entre les modèles , vues et contrôleurs) mais j'ai encore du mal à appliquer mes connaissances de base à un but pratique. Donc, je pensais essayer de créer une version ASP.NET MVC de mon moteur de recherche de polynômes JavaScript. Cela devrait être assez simple. Évidemment, ça ne va pas résoudre toutes les racines de chaque degré (du moins pour le moment) mais j'essaie au moins d'obtenir Quadratic-Quartic.Création d'un finder racine polynomial ASP.NET MVC
Donc, j'ai 1 contrôleur en plus de mon HomeController
. Ceci est appelé CalculateController
et traitera tout le contrôle lié à toutes les pages traitant du calcul des racines d'un certain type de polynôme. Par conséquent, j'ai 3 vues, 1 pour chacun des différents types de polynômes, Quadratic.aspx
, Cubic.aspx
et Quartic.aspx
.
Maintenant, je pensais que j'aurais besoin d'un modèle pour gérer ma «logique métier» dans ce cas, l'informatique et le calcul algébrique des racines.
C'est ici que j'ai besoin de commentaires.
Dois-je en créer un Calculer une classe? C'est ce que j'ai en ce moment. Dans la classe, je déclare 5 différentes variables de chaîne d'instance (je pense que c'est la terminologie correcte):
public int aValue;
public int bValue;
public int cValue;
public int dValue;
public int eValue;
Ces stockera les valeurs de chacun des termes. Maintenant, est-ce une mauvaise idée, étant donné que Quadratic et Cubic n'utiliseront pas tous ces champs d'instance? Si oui, alors je pourrais juste créer des classes séparées pour chaque type polynomial séparé. OK, maintenant, je dois aussi recevoir une entrée de mon formulaire pour assigner les valeurs entrées dans ces variables.
Je suis un peu perplexe sur la façon dont je devrais faire cela.
J'ai une forme ici sur mon point de vue quadratique:
<% using(Html.BeginForm("QuadraticForm", "Calculate")) %>
<% { %>
a: <%= Html.TextBox("quadraticAValue") %>
<br />
b: <%= Html.TextBox("quadraticAValue") %>
<br />
c: <%= Html.TextBox("quadraticAValue") %>
<br />
<input type="submit" id="quadraticSubmitButton" />
<% } %>
Très simple, très basique.
Maintenant, comment affecter ces entiers entrés dans un nouvel objet de la classe Calculat
e par le biais d'une méthode Quadratic()
?
MISE À JOUR:
OK, j'ai un peu plus de connaissances que jamais en raison de quelques recherches, donc je vais laisser la question initiale dans son intégralité ci-dessus, et mise à jour ci-dessous avec certains des informations que je trouve sur :
Je vais avoir une classe distincte dans le dossier Models pour chaque type de polynôme. Actuellement, j'expérimente avec le fichier QuadCalc.cs
, le modèle pour les polynômes quadratiques.
Voici le code que j'ai jusqu'à présent:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace RootFinder.Models
{
public class QuadCalc
{
public double quadraticAValue { get; set; }
public double quadraticBValue { get; set; }
public double quadraticCValue { get; set; }
public void QuadCalculate(double quadraticdAValue, double quadraticBValue, double quadraticCValue, out double x1, out double x2)
{
//Quadratic Formula: x = (-b +- sqrt(b^2 - 4ac))/2a
//Calculate the inside of the square root
double insideSquareRoot = (quadraticBValue * quadraticBValue) - 4 * quadraticdAValue * quadraticCValue;
if (insideSquareRoot < 0)
{
//There is no solution
x1 = double.NaN;
x2 = double.NaN;
}
else
{
//Compute the value of each x
//if there is only one solution, both x's will be the same
double sqrt = Math.Sqrt(insideSquareRoot);
x1 = (-quadraticBValue + sqrt)/(2 * quadraticdAValue);
x2 = (-quadraticBValue - sqrt)/(2 * quadraticAValue);
}
}
}
}
Dans le code ci-dessus, je reçois et définir les valeurs des formes (pas vraiment sûr de savoir comment l'ensemble string
-double
chose va marcher dehors, mais nous pouvons nous inquiéter de ce xD plus tard, puis utiliser ceux-ci comme paramètres d'une méthode construite autour de la fameuse "formule" quadratique.
Maintenant, dans mon contrôleur Calculate
, ceci est mon code qui applique aux quadratiques:
[AcceptVerbs(HttpVerbs.Get)]
public ViewResult Quadratic()
{
return View();
}
[AcceptVerbs(HttpVerbs.Post)]
public ViewResult Cubic(QuadCalc boss)
{
return View();
}
Maintenant, dans le code ci-dessus, au lieu de boss
que dois-je placer ici? Je ne peux pas le laisser juste omis mais je crois que ce devrait être le nom d'un objet? Le problème est, je n'ai jamais spécifié un objet dans mon modèle, devrais-je faire cela?
Cela n'affecterait pas mes résultats, non? – Qcom
postedModel est assez ambigu.Je l'appelle habituellement tout ce que j'attends: 'person',' tradeParameters', 'account', etc. – Ryan