2014-07-07 49 views
0

我试图实现货币本地化,如默认货币是美元,当用户将货币更改为欧元时,所有美元产品价格都将转换为欧元。我为此创建了一个简单的资源文件,但不知道下一步该怎么做。请引导我与此我已搜索互联网,但找不到任何适当的解决方案。货币本地化asp.net mvc 4

+0

您必须提供更多信息。显示一些代码:你如何显示价格?你从哪里得到它们?你如何稳定汇率?有很多事情,而不是你在做什么的线索 – JotaBe

+0

你真的认为货币的官方转换率是适当的吗?专业销售人员对于不同的国家会有不同的价格!通常情况下,在德国500欧元的商品售价将在美国500美元(不是680)...... –

+0

@BernhardHiller我拥有的数据是恰当的,我只是想简单地将它从美元转换为任何用户指定的currecny – Anony

回答

0

您可以设置一个基本静态帮助器方法,以便在您的应用程序中随处设置正确的货币,并且它将使用会话变量应用于整个应用程序域。

因此,您只需将会话变量的默认值设置为USD,并将选定的货币下拉列表中的值指向您的会话变量。

Session["currency"] = //set avalue from drop down list here; 

,并计算出你可以链接的静态辅助类,你的资源,并获得选择的币种。

public static double CalcCurrency(double price) 
    { 
     //from your resource 
     return GetCurrency(Session["currency"].ToString(), price); 
    } 

现在在你的网页,你随处可见,你有联营的价格,那么你必须使用上面的helper方法:

asp.net: Price: <%: CalcCurrency(200.55) %> 
    Razor: Price: @{ CalcCurrency(200.55) } 

使用会话变量只有一个选择,如果你不不想使用它,你也可以使用ViewBag或ViewData。 Session的优势在于用户可以在整个应用程序中获得选定的货币,而无需为每个视图自行维护。

+0

谢谢对于这个巨大的帮助,但是您能否详细说明一下,比如我从美元数据库中获取货币价值,那么我如何设置一个帮助者将所有美元价值转换为欧元或其他货币?我已经设置了货币兑换方法 – Anony

+0

如果您还没有找到免费货币的地方,您可以下载xml以便将美元兑换成其他货币在此网址 //http://themoneyconverter.com/rss-feed /USD/rss.xml然后使用金额*费率来获得逼近转换。我说近似值是因为传递给PayPal时金额总是不同,我想他们会为转换收取一定的费用。我做什么:我下载它,然后保存在bd中,然后在bd中使用,如果它在一小时内下载的话。 xml中上次更新的suply UTC日期时间。对不起,我的基础英语,即时通讯法语。 如果你需要一些代码,请问。 – Benoit