使用 jquery 获取部分视图并更新 UI

发布于 2024-09-09 08:24:00 字数 664 浏览 3 评论 0原文

我需要渲染部分视图(从控制器返回)以显示一些客户摘要详细信息。当用户单击按钮时,需要发生这种情况。同时,用户可以在网格上选择不同的客户。我在网格选择更改事件上使用 jquery 记下隐藏字段中选定的客户 ID。当用户单击按钮时,我需要将此隐藏字段值(选定的 id)传递给控制器​​,控制器会执行一些工作并返回部分视图。然后我需要在页面上呈现这个部分视图。我已尝试以下操作,但有两个问题

  1. 我无法弄清楚如何将隐藏字段值发送到控制器
  2. 渲染部分视图后,如果用户选择另一个客户并再次单击按钮,我无法重新渲染

它代码:

  #PlaceHolder is just a div element

function DoSomwWork() {
                $('#PlaceHolder')
                .load('<%= Url.Action("GetSelectedCustSummary", 
                                      "SomeController", 
                                       new { selectedId = **HIDDEN FIELD VAL HERE** })%>');
            }
        }

I need to render a partial view (returned from the controller) to show some customer summary details. This will need to happen when the user clicks on a button. In the the mean time the user can select different customers on a grid. I keep note of the selected customer id in a hidden field using jquery on the grids selection changed event. When the user clicks on a button i need to pass this hidden field value (selected id) to the controller, the controller does some work and returns a partial view. I then need to render this partial view on the page. I have tried the following but have two problems

  1. I cant fig out how to send the hidden field value to the controller
  2. After the partial view is rendered I cant get it to rerender if the user selects another customer and clicks the button again

The code:

  #PlaceHolder is just a div element

function DoSomwWork() {
                $('#PlaceHolder')
                .load('<%= Url.Action("GetSelectedCustSummary", 
                                      "SomeController", 
                                       new { selectedId = **HIDDEN FIELD VAL HERE** })%>');
            }
        }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

沒落の蓅哖 2024-09-16 08:24:00

我怀疑你能以这种方式做到这一点。

然而,由于您已经在使用 MVC,您应该能够定义一个操作(在您的情况下为“GetSelectedCustSummary”)并返回一个 json 对象,然后使用 jQuery

更新操作它:
定义操作方法,如下所示:

[HttpGet]
public JsonResult ActionName(string id)
{
    //some logic here to get QueryResult
    return Json(QueryResult, JsonRequestBehavior.AllowGet);
}

然后在 Jquery 中调用您的操作方法:

$.ajax({
    //you can assign id dynamically
    url: '<%= Url.Content("~/Controller/ActionName/YourId") %>',
    type: 'GET',
    dataType: 'json',
    success: function (data) {
       //manipulate your div content with data
    },
    error: function (e) {
        //manipulate your div content with error
    }
});

每次单击更新按钮时,分配所需的 id,然后触发 Jquery 函数。
它在我的项目中对我有用

I doubt you will be able to do it this way.

However since you are already using MVC, you shall be able to define a action ("GetSelectedCustSummary"in your case) and return a json object instead, then manipulate it with your jQuery

Update:
Define Action Method something like:

[HttpGet]
public JsonResult ActionName(string id)
{
    //some logic here to get QueryResult
    return Json(QueryResult, JsonRequestBehavior.AllowGet);
}

then call your Action Method in Jquery:

$.ajax({
    //you can assign id dynamically
    url: '<%= Url.Content("~/Controller/ActionName/YourId") %>',
    type: 'GET',
    dataType: 'json',
    success: function (data) {
       //manipulate your div content with data
    },
    error: function (e) {
        //manipulate your div content with error
    }
});

Every time you click update button, assign the id you want, and trigger the Jquery function.
It worked for me in my project

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文