9
votes

Forme ASP.NET MVC et Double champs

Je développe un portail ASP.NET MVC pour gérer les coordonnées GPS utilisant localDB. Mon modèle est:

<system.web>
<httpHandlers>
  <add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
</httpHandlers>

<!--
    Enabling request validation in view pages would cause validation to occur
    after the input has already been processed by the controller. By default
    MVC performs request validation before a controller processes the input.
    To change this behavior apply the ValidateInputAttribute to a
    controller or action.
-->
<pages
    validateRequest="false"
    pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
    pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
    userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=number">
  <controls>
    <add assembly="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=number" namespace="System.Web.Mvc" tagPrefix="mvc" />
  </controls>
</pages>
<globalization culture="en-US" uiCulture="en-US" />


6 commentaires

Dites-vous que si vous entrez des valeurs avec un point décimal, les valeurs sont ensuite reçues comme numéro entier dans votre contraire?


Salut von v. Oui, exactement


C'est intéressant. Même sans le formatage de la baseNotation, il devrait fonctionner. Je ne pense même pas que la culture info a quelque chose à voir avec cela, car vous n'obtenez pas de séparateur du tout! Hmm...


@vonv. Par exemple, CultureInfo pour le français (Belgique) (FR-BE) Un nombre valide est (123.456.789,00) ici. est pour le groupe de chiffres et, est le symbole décimal.


C'est exactement ce que je voulais dire. Y a-t-il un pays dont le symbole décimal est "vide"?


Oui, vous avez raison, même si avec la culture FR-BE "41.213321" doit être convertie en C # double 41213321.0


3 Réponses :


7
votes

Peut être causé par le cultureInfo, une utilisation de la culture , au lieu de . pour le séparateur décimal. Essayez de définir les éléments suivants dans web.config, xxx

espère que cela aide


5 commentaires

ça marche mais pas si bon. Les champs du formulaire me permettent d'insérer un nombre court (seulement 3 numéros Afeter,), puis lorsque je crée une nouvelle dbgégygographie (voir system.data.spatial), j'ai une exception générale.


Utilisez-vous "en-nous"? Si vous utilisez, le 41.213321 ne se lie pas correctement?


Je copie et coller dans ma balise System.web. Si j'utilise le, (par exemple: 41.213321), le formulaire montre-moi ceci: "La latitude de champ doit être un nombre". Si j'utilise 41.213321, le point de pause me montre 41213321.00. Dans les deux cas, l'application passe dans les captures et cela n'insère pas de nouveau GPSCoordinate. maintenant je modifie ma question pour vous montrer mon


Avez-vous utilisé des produits de basenotations sur 'Latitude', 'Lattitut' Propriétés sur la classe "GPS Coordinated Mododel"?


Comme vous pouvez le voir, non je n'ai pas



-1
votes

Utilisez Decimal au lieu de double comme type de données, ce qui pourrait aider.

public class GpsCoordinateViewModel
{
    decimal Latitute { get; set; }
    decimal Longitude { get; set; }
}


0 commentaires

0
votes

Bien ensuite, utilisez la chaîne sous forme de type de données et analysez la valeur décimale ultérieure du contrôleur.


0 commentaires