Jquery Asp.net MVC 3和母版页视图模型和类别列表

Jquery Asp.net MVC 3和母版页视图模型和类别列表,jquery,asp.net-mvc,Jquery,Asp.net Mvc,我是ASP.NET MVC 3的新手,希望将我们的网站从其他工具升级到ASP.NET MVC 3。 在当前场景中,我有特定于用户的产品,每个产品都有主类别、类别和子类别。当用户登录时,用户只能查看适用于他的产品(带分页)。在左侧导航菜单上,它将PrimaryCategory显示为组合框,将Category和SubCategory显示为树视图(导航部分仅显示适用于用户的产品的主/类别/子类别)。此导航菜单在每页(即母版页)上显示,以便用户可以轻松切换到任何Cat/SUBACT 我有以下关于导航菜单

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

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

  • 使用MVC 3(Razor视图引擎)如何在导航部分填充主类别(组合框)、类别/子类别作为母版页上的树视图?是否有任何控件可用于这些控件,或者我只需要使用html+css就可以了

  • 这个的URL语法和路由映射是什么。我是否需要将PrimaryCat、Cat、SubCat ID和PageNumber作为映射传递(即/products/1/2/3/1到每个URL,或者只传递PageNumber和querystring参数(/products/1?PCat=1&Cat=2&SubCat=3)

  • 当用户选择任何类别/子类别时,在“内容”部分中,如何将产品显示为带有分页的datagrid。是否有datagrid控件

  • 我在MasterPage(ShoppingBasket)上有另一个部分,其中我显示了用户在购物篮中添加的项目,因此当用户单击datagrid中的add按钮而不刷新整个页面时,我也想更新该部分

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

    如有任何回复,将不胜感激。 提前谢谢

    问候
    杰鲁米

    你的大多数问题都与用户界面有关,有多种方法可以解决它们

    问题1:是的,您需要自己进行渲染。或者您可以将类别转储到JavaScript数组中,并使用类似的插件在客户端进行渲染

    问题2:这两种方法都可以,所以这取决于你

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


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

    您好,谢谢您的回复。我本来想使用Jquery进行渲染,但后来我看到一些链接建议您可以使用一些HTMLHelper控件。例如,考虑到性能,我不想返回到db 4每个URL,而是获得所有适用的产品使用一次并存储在某个地方,然后在那里查询4rm以满足用户请求。我如何做到这一点?我计划使用EF和Linq。@Jhelumi,为了减少对DB的命中数,您可以使用内置缓存对象并使用以下模式:
    GetSomeEntity(){if in Cache{return}else{get from DB,put in Cache,return}
    。这将是引入缓存的最快方式。当然,您也可以使用一个静态类来负责保存这些您经常需要的对象。我建议检查一些其他问题,看看人们在使用EF或Linq时如何处理缓存。@Jhelumi另外,我认为您可以从开发示例和应用程序(如果您有时间)或阅读一些源代码来了解该框架。我试图提供一些答案,但我想我没有强调为什么ASP.NET MVC是一个强大而有趣的开发web应用程序的框架:)