【发布时间】:2011-05-28 00:42:24
【问题描述】:
我是 Asp MVC 的新手,我正在尝试完成一些异步更新(我正在使用 MVC3 RC2,带有 Razor,但我也可以使用 ASPX 解决方案进行管理)。
我有一个母版页,它通过调用 Html.RenderAction("Cart","Shop") 在每个页面上呈现一个购物车框。 ShopController 的 Cart 动作调用数据库等,并输出结果。这行得通。
第一个问题:如果我在这个局部视图中放置一个 ActionLink(如 Html.ActionLink("Remove")),那么即使我从 Remove 操作中调用 PartialView(),它只呈现购物车,没有其他内容(本质上,我的页面消失了)。
第二个问题:在这个局部视图中有一个名为“cartContent”的 div。我希望能够在任何地方放置一个链接(不仅仅是在主页面或部分视图中),当按下它时会调用控制器操作,然后根据结果仅更新 cartContent div。我已经尝试过 Ajax.ActionLink,但它的作用与 Html.ActionLink 相同,即使我导入了 Microsoft.MvcAjax js 库。
另外,如果我解决了第一个问题,我也希望它是异步的。
我使用什么解决方案?我尝试将 UpdateTargetID 设置为“cartContent”,我尝试将 cartContent 包装到 Ajax.BeginForm 中,什么都没有。我必须使用 jQuery(我对此一无所知)吗?我是否序列化一些对 JSON 的响应,并在 Javascript 中手动更新 div? (我不是很擅长 JS,我来自 C# 方面)
【问题讨论】:
-
ajax.beginform 应该是答案,您是否在默认主布局中启用了 mvc ajax javascript?我记得默认情况下它是禁用的。 davidhayden.com/blog/dave/archive/2009/05/19/… 也可能有帮助
-
那是我一遍又一遍地阅读的同一页。我的 _Layout.cshtml 中有以下几行(就像 SiteMaster 的模板):
标签: asp.net-mvc ajax asp.net-mvc-2 asp.net-ajax