首页 新闻 搜索 专区 学院

mvc music store

0
悬赏园豆:5 [已解决问题] 解决于 2013-12-25 10:58
@Html.ActionLink("Cart
(" + ViewData["CartCount"] + ")",
    "Index",
    "ShoppingCart",
    new { id = "cart-status" })

最后一句
  new { id = "cart-status" }


这个表示嘛玩意?
mushishi的主页 mushishi | 菜鸟二级 | 园豆:230
提问于:2013-12-23 16:22
< >
分享
最佳答案
0
收获园豆:5
Launcher | 高人七级 |园豆:45045 | 2013-12-23 16:33

大哥  我知道这个是 routeValues     我要问的是id = "cart-status"  这里边的 car-status要表达什么呀  controller里边对应的Index的action参数是int id

mushishi | 园豆:230 (菜鸟二级) | 2013-12-24 19:34

@mushishi: 大哥,你贴的代码是 CartSummary.ascx 部件的(注意后缀名),它被用在 Site.Master 中(<% Html.RenderAction("CartSummary", "ShoppingCart"); %>),它对应的是 ShoppingCartController.CartSummary。

然后请你打开 ShoppingCart/Index.aspx 文件,找到  function handleUpdate(context),注意其中有这样一条语句:$('#cart-status').text('Cart (' + data.CartCount + ')'),对没错,这就是更新 id 为“cart-status”的文本的 js。

然后请你运行程序,转到 http://localhost:xxxx/ShoppingCart 页面,通过 IE 的开发人员工具,查看页面右上角的“Cart(X)”部件,你会发现它对应的脚本为:<a id="cart-status" href="/ShoppingCart?Length=12">Cart (0)</a>。好了,现在请回到 Store,添加几张唱片后,在回到 ShoppingCart 页面,现在你能看到一个你已经选择了的唱片的列表,点击“Remove from cart”,你会发现页面没有整个刷新,但是右上角的“Cart(X)” 变化了。

PS:我不做网站开发,也不懂 JS,所以别追问我 JS 的问题,太高深了,不懂。

Launcher | 园豆:45045 (高人七级) | 2013-12-25 09:42

@Launcher:   soga    太感谢了    , 不过你不做网站开发 怎么懂那么多页 您干啥的  problem killer?

mushishi | 园豆:230 (菜鸟二级) | 2013-12-25 10:37

@mushishi: 差不多吧,改 BUG 的。

Launcher | 园豆:45045 (高人七级) | 2013-12-25 10:45

@Launcher:      ?Length=12  这个参数是哪里设置的  一直没找到;

      id = "cart-status" 这个只是设置的a标签的id属性吧

mushishi | 园豆:230 (菜鸟二级) | 2013-12-25 10:48

@mushishi:  知道了 貌似这个是MS例子的bug       阿狸噶多

mushishi | 园豆:230 (菜鸟二级) | 2013-12-25 10:58

@mushishi: 应该是个 BUG 吧,我对比了下 Html.ActionLink 的几个重载版本,CartSummary.ascx 中的正确写法应该是:

<%: Html.ActionLink("Cart (" + ViewData["CartCount"] + ")", "Index", "ShoppingCart",null, new { id = "cart-status" })%>

 

原来的代码中把 “ShoppingCart” 当着了 routeValues 使用,因为 “ShoppingCart” 是 string 类型,所以在 Build Url 的时候,就读取了 string.Length 属性作为参数追加到 url 上。

Launcher | 园豆:45045 (高人七级) | 2013-12-25 11:20

@Launcher:  嗯   我也是对着重载方法的参数一个个匹配过去  觉得莫名其妙       刚刚在codeplex上发现别人也有同样的疑问才确认是MS的bug

mushishi | 园豆:230 (菜鸟二级) | 2013-12-25 11:22

@Launcher: @Html.ActionLink("Cart (" + ViewData["CartCount"] + ")", "Index", "ShoppingCart",null, new { id = "cart-status" })  加个参数就不会搞错了

mushishi | 园豆:230 (菜鸟二级) | 2013-12-25 11:23
其他回答(1)
0

这个Id应该是跳转的参数

雾静 | 园豆:561 (小虾三级) | 2013-12-23 22:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册