【问题标题】:Asp.net MVC 3 and Master Page ViewModel and Category ListingAsp.net MVC 3 和母版页 ViewModel 和类别列表
【发布时间】:2011-05-12 13:50:31
【问题描述】:

我是 ASP.NET MVC 3 的新手,希望将我们的网站从其他工具升级到 asp.net mvc 3。 在当前场景中,我有用户特定的产品,每个产品都有主类别、类别和子类别。当用户登录时,用户只能查看适用于他的产品(带分页)。在左侧导航菜单中,将 PrimaryCategory 显示为 ComboBox,将 Category 和 SubCategory 显示为下方的 TreeView(导航部分仅显示适用于用户的产品的 Primary/Categories/SubCategories)。此导航菜单在每个页面(即母版页)上都会显示出来,以便用户可以轻松切换到任何 Cat/SubCat。

我有以下与导航菜单和分页(产品列表)有关的问题。

  1. 使用 MVC 3(Razor 视图引擎)如何使用主类别(组合框)、类别/子类别作为 MasterPage 上的树视图填充导航部分?是否有任何可用的控件,或者我只需要使用 html+css 来完成?

  2. 为此的 URL 语法和路由映射是什么。我是否需要将 PrimaryCat、Cat、SubCat Id 和 PageNumber 作为映射传递(即 /products/1/2/3/1 到每个 URL 或只是 PageNumber 和查询字符串参数(/products/1?PCat=1&Cat=2&SubCat= 3).

  3. 当用户选择任何类别/子类别时,如何在内容部分将产品显示为带有分页的数据网格。再说了,datagrid有什么控件吗?

  4. 我在 MasterPage(ShoppingBasket) 上有另一个部分,我在其中显示用户添加到购物篮中的项目,因此我想在用户单击数据网格中的添加按钮而不刷新整个部分时更新该部分页面。

我已阅读 Scott 在 Asp.net 网站上关于使用抽象控制器将数据传递到 MasterPage 的教程,并打算使用它,除非有人有更好的不同想法。

任何回应将不胜感激。 提前致谢

问候 杰赫鲁米

【问题讨论】:

    标签: jquery asp.net-mvc


    【解决方案1】:

    您的大多数问题都与用户界面相关,并且有多种解决方法。

    问题 1 ;是的,您需要自己进行渲染。或者,您可以将类别转储到 JavaScript 数组中,然后使用 jQuery Treeview Plugin 之类的插件在客户端进行渲染。

    问题 2 ;它可以以任何一种方式工作。所以这取决于你。

    当然,问题 3 和 4 是可能的。但是它们太宽泛了,所以很难给出一个明确的答案。如果您要求具体示例,我可以尝试提供一些示例代码。

    无论如何,我建议尝试忘记数据网格或任何其他服务器端控件。 ASP.NET MVC 的一大优点是您可以完全控制从服务器发送到客户端的响应。您只需将模型提供给视图(如果需要),该视图负责如何向用户显示该信息。

    【讨论】:

    • 您好,感谢您的回复。我正在考虑使用 Jquery 进行渲染,但后来我看到一些链接建议您可以使用一些 HTMLHelper 控件。例如weblogs.asp.net/shijuvarghese/archive/2010/10/08/…mikesdotnetting.com/Article/128/… 还考虑到性能,我不想每个 URL 都返回 db 4,而是一次性获取适用于用户的所有产品并存储在某处并在那里查询 4rm 以满足用户请求。我该怎么做?我打算为此使用 EF 和 Linq。
    • @Jhelumi,为了减少对 DB 的命中次数,您可以使用具有此模式的内置 Cache 对象:GetSomeEntity() { if in cache { return } else { get from db, put into cache, return } }。这将是引入缓存的最快方法。当然,您也可以有一个静态类来负责保存您经常需要的这些对象。我建议检查一些其他问题,看看人们在使用 EF 或 Linq 时如何处理缓存。
    • @Jhelumi 另外,我认为您可以从开发示例应用程序(如果您有时间)或阅读一些源代码来了解该框架中受益。我试图提供一些答案,但我认为我没有强调为什么 ASP.NET MVC 是一个强大而有趣的框架来开发 Web 应用程序:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多