【发布时间】:2021-05-15 08:33:22
【问题描述】:
我正在尝试修改 Aspdotnetstorefront Multistore 的现有 XML 包。它是一个内部 XML 包,用于显示特定产品的变体。我首先要做的是按原样复制粘贴整个代码,然后将其放入新的自定义 XML 包中。问题是它在原始包中工作正常,但在复制包中不能正常工作。当我尝试运行它时,“AddtoCartForm”函数使页面崩溃并显示以下错误,同时以红色显示包含函数调用的行:
此方法需要 HtmlHelper。确保在调用 RunXmlPackage 方法时指定一个
函数格式为:
<xsl:value-of select="aspdnsf:AddtoCartForm(ProductID, VariantID, 1, 1, $SelectedSize, $SelectedColor)" disable-output-escaping="yes"/>
为了确定,我删除了该函数的行,然后其他一切正常。我不知道这里有什么问题。除非通过调用包的 url 的结构,否则一切都是相同的:
内部包是:\product\123456
自定义包为:\topic\packagename?ProductID=123456
我检查了 SP 生成的 XML、运行时和请求的数据,这两种情况基本相同。 ProductID 和 VariantID 值在那里。 SelectedColor 和 SelectedSize 在 XML 中是 not(甚至在内部包中也没有),因此它可能只是提供 null 值,而且可能没有必要。
还有更多。如果我像这样从 url 中抑制 productid 值:
\topic\packagename
它不会使页面崩溃(但也不会渲染,因为不会有任何值要处理)。
无论如何,我看不出为什么它不能只在查询字符串中传递变量(这基本上就是它在原始包中所做的,即使是不同的格式)和它到达那里的 var 值(productid)。然而,似乎确实是 url 格式不令包装满意,但对我来说并没有太大意义。我已经结束了几天,但我所做的一切似乎都没有产生任何积极的结果。 :-(
我在网上查找了一些文档,但没有走运,也没有找到任何东西。在极端情况下,我会尝试获得 Vortx 支持(他们通常会回答我提供一些有价值的线索),但这次似乎对于这个特定问题没有任何帮助,除非我支付淫秽的小时费,不幸的是这是不可能的...大声笑!
有什么想法吗?
更新:我们不使用 Multistore 常规搜索工具。由于我们产品(回收的汽车零件)的性质,我们有一个自定义搜索工具,当我们没有确切的零件时,它将尝试找到可能符合用户需求的“相似”项目。我不知道您是否知道,但几个机械汽车零件可以在不同型号和制造商之间互换(如交流发电机、交流压缩机、电池、悬架、冷却系统等),所以当我们的一位客户需要修理零件时他的车他不会告诉我们零件代码;相反,他会告诉我们零件的车型、年份和通用名称,以便我们尝试为他找到零件。这确实意味着某个卡罗拉零件将完全适合本田雅阁等等。有时我们有一些可能适合他的车的零件,但我们不确定。发生这种情况时,我们将向客户展示这些零件,他将决定是否可以抓住机会。为了让客户感到舒适,我们希望在同一页面中显示所有这些部件,但由于它们通常是不同产品的变体,我们不能为此目的使用常规产品页面(因为产品页面只会显示 ONE 产品的变体时间)。出于这个原因,我将编写一个包 - 产品页面的修改版本 - 可以做到这一点,但我正在努力使用 AddtoCartForm 功能。事实上,我只是通过直接访问 /shoppingcart/addtocart 脚本将商品添加到购物车中找到了一种解决方法,现在我的问题是在将商品添加到购物车后强制它返回到特定的网址...... em>
【问题讨论】:
标签: html-helper aspdotnetstorefront