1

我对 MVC 相当陌生,需要帮助理解类似于 UpdatePanel 功能的部分更新实现。

我在页面的 LHS 上有某些过滤器,在 RHS 上有一个表(DataTable)。当用户选择过滤器时,我希望表格数据根据过滤器进行更改。我试图只加载包含表格的 PartialView 而不是加载整个页面。但是,我一开始就遇到了困难。

问题 -

使用 Html.BeginForm 可以实现这样的事情吗?就像这里显示的那样。 我真的找不到关于 Html.BeginForm 的详细文档,MSDN 网站解释了技术细节,但我真的不确定是否有必要始终使用它,以及在哪里绝对需要它。

我试过的 -

我尝试使用此处显示的 jQuery.load()。但是,当我尝试像这样加载我的局部视图时,我遇到了 400 Bad Request 错误。

我在这里所做的只是——

在视图中 -

我试过这个 -

$('#contentDiv').load('<%= @Url.Action("Index", "Grid") %>');  

还有这个 -

$.post('<%= @Url.Action("Index", "Grid")%>', function (data) {
        $('#contentDiv').html(data);   }

我也尝试过使用#get,但这也不起作用。

在控制器中 -

    public ActionResult Index()
    {
        List<Models.GridData> tableData= new List<GridData>();
        try
        {                
            tableData= hvUtil.FillGrid();
            return PartialView(notes);               
        }
        

任何人都可以建议如何让事情正常进行吗?

4

1 回答 1

2

看起来您正在使用 Razor 和 ASCX 语法的奇怪组合。你看过生成的javascript吗?

这可能会让你更接近你想要的:

$('#contentDiv').load('@Url.Action("Index", "Grid")');  
于 2012-07-12T18:32:24.620 回答