asp.net
  • asp.net-mvc
  • asp.net-mvc-3
  • 2011-07-15 32 views 0 likes 
    0

    我在我的页面上有一个左侧导航菜单..使用下面的url.action ..我试图带来一个视图立即相邻(菜单的右侧)根据什么链接被点击..我把旁边的导航菜单一个div ..但不知道如何在div来显示相应的内容...MVC3 - 在同一页面显示partialview

    <table> 
    
    <tr><td><a href='@Url.Action("ActionName1", "ControllerName")'> 
    <img src='@Url.Content("~/Content/themes/base/images/image1.png")'/></a></td></tr> 
    
    <tr><td><a href='@Url.Action("ActionName2", "ControllerName")'> 
    <img src='@Url.Content("~/Content/themes/base/images/image2.png")'/></a></td></tr> 
    
    
    </table> 
    <div id="DISPLAYVIEWHERE">DISPLAY VIEW HERE based on link that is clicked</div> 
    

    在控制器,ActionName1代码我有这个.. 。

    public ActionResult ActionName1() 
        { 
         var model = new ViewModel(); 
         return PartialView("PartialView1", model);  
        } 
    

    当我运行这个时,在新页面中打开partialview1。我如何能够在导航菜单的同一页面中打开这个局部视图,并立即在菜单的右侧..基于单击的链接,partialview1或partialview2显示在导航菜单旁边......感谢您的支持帮帮我。

    +0

    你需要使用AJAX来将数据显示在同一页面中。您可以使用MVC ajax或Jquery ajax来执行此操作。 –

    回答

    6

    你必须在这种情况下使用ajax。你可以添加一些类你的锚标签,如

    <a class='handle' href='@Url.Action("ActionName1", "ControllerName")'> 
    <img src='@Url.Content("~/Content/themes/base/images/image1.png")'/></a> 
    <a class='handle' href='@Url.Action("ActionName2", "ControllerName")'> 
    <img src='@Url.Content("~/Content/themes/base/images/image2.png")'/></a> 
    

    ,然后你可以使用jQuery挂钩这些链接的点击事件,并发送一个Ajax调用,比如

    $('.handle').live('click', function(){ 
         $.ajax({ 
          url:this.href, 
          type='post', 
          success:function(data) 
          { 
           //data contains the result returned by server you can put it in div here 
           $('#DISPLAYVIEWHERE').html(data); 
          } 
          }); 
    //here you have to return false to prevent anchor from taking you to other page 
    return false; 
        }); 
    
    +0

    感谢您提供完美的解决方案。 – ZVenue

    相关问题