我正在尝试更新一个Asp.Net网站,以使用MVC 5。有一个购物车组件,扩展了配置文件提供者。位于web.config中的xml似乎自动生成旧网站项目中的代码,该项目提供购物车属性,但在mvc版本中不执行任何操作。
<!-- Profile provider -->
<profile defaultProvider="SQLProfileProvider">
<providers>
<clear/>
<add name="SQLProfileProvider" connectionStringName="LocalSqlServer" applicationName="/" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
<properties>
<!-- Define our shopping cart which is contained in customerManager and serialized as binary -->
<add name="ShoppingCart" allowAnonymous="true" type="customerManager.ShoppingCart, customerManager" serializeAs="Binary"></add>
</properties>
</profile>因此,以下代码失败:
Profile.ShoppingCart.AddItem(1500);Error 3 'System.Web.Profile.ProfileBase‘不包含'ShoppingCart’的定义,也找不到接受'System.Web.Profile.ProfileBase‘类型的第一个参数的扩展方法'ShoppingCart’(您缺少使用指令还是程序集引用?)D:\VirtualWeb2\VirtualWeb2\Controllers\AccountController.cs 92 29 VirtualWeb2
购物车的原始代码位于一个独立的DLL中,但是如果我真的需要的话,我可以访问源代码。如果可能的话,我更愿意通过配置来处理它。
我在网上看过很多帖子,但找不到任何涉及我同样情况的内容。知道为什么这个"ShoppingCart“属性在构建mvc项目时不自动生成,而是在asp net web窗体网站中工作?。
发布于 2015-02-17 19:17:21
KingOfHypocrites回答(来自评论):
public static ShoppingCart GetCart(this Controller c)
{
var cart = c.Profile["ShoppingCart"];
return (customerManager.ShoppingCart)cart;
}https://stackoverflow.com/questions/28568213
复制相似问题