【问题标题】:Using jquery to get a partial view and updating the UI使用 jquery 获取部分视图并更新 UI
【发布时间】:2011-03-15 03:01:49
【问题描述】:

我需要渲染一个局部视图(从控制器返回)以显示一些客户摘要详细信息。这需要在用户单击按钮时发生。同时,用户可以在网格上选择不同的客户。我在网格选择更改事件上使用 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** })%>');
            }
        }

【问题讨论】:

  • 我认为您将不得不发布更多代码/更详细地解释一些事情,以便任何人帮助您...

标签: jquery asp.net-mvc-3 asp.net-mvc-partialview url.action


【解决方案1】:

我怀疑你能做到这一点。

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

更新: 定义动作方法类似于:

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

然后在 Jquery 中调用你的 Action Method:

$.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函数。 它在我的项目中对我有用

【讨论】:

  • 感谢您的回复。但我不确定您的解决方案将如何工作。总结一下我的问题,我只想在用户单击按钮时在同一页面上显示一些客户摘要信息。客户详细信息将基于 Telerik 网格上当前选择的客户 ID。这个 Id 需要传递给控制器​​来做一些工作,然后控制器需要返回结果(我希望是部分视图),然后我将在同一页面上呈现它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-09
  • 1970-01-01
相关资源
最近更新 更多