渲染局部视图动态而不返回mvc控制器

时间:2018-05-17 08:21:48

标签: jquery asp.net-mvc html5 asp.net-web-api2

我有 div ContentPartial ),我用它来加载部分视图。

请注意,这个局部视图不是常数,它是从数据库动态命名的,有时是学生有时候是员工等等,......

我在前端使用 MVC ,在后端使用网络API ,我不想返回mvc控制器来查看局部视图,我需要使用j查询查看部分视图,如html render

这是我的div

<div class="ContentPartial hidden">                            
</div>

这是我从mvc控制器加载局部视图的ajax请求

  $.ajax({
            URL: "/" + controllerName + "/" + ActionName + "",                
            data: JSON.parse(requestData),

            success: function (data) {  
                    $('.ContentPartial').removeClass('hidden');
                    $('.ContentPartial').html(data);

                  }
        })

这是我的控制器返回部分视图

 public ActionResult ActionName()
    {          
        return PartialView("ActionName");
    }

我想要那样的东西

$('.ContentPartial').renderpartial('dynamic view name')

1 个答案:

答案 0 :(得分:3)

ASP.NET MVC是服务器端框架,jquery是客户端库。没有请求就无法呈现视图。

但是你可以做一个控制器来渲染名称作为参数的视图

public RendererController : Controller
{
    public ActionResult Render(string viewName)
    {
        return PartialView(viewName);
    }
}

和客户:

function renderPartial($container, viewName) {
    $.ajax({
        URL: "/Renderer/Render?viewName=" + viewName,                
            success: function (data) {  
                $container.html(data);
                $container.show();
            }
    });
}

renderPartial($('.ContentPartial'), 'dynamic view name');

请注意,您的视图需要位于共享文件夹中,以便控制器在没有完整路径的情况下找到它们。