我有一个 asp.net mvc 视图,其中页面顶部是一个表格。我想要的是单击表中的一行,该行将转到服务器并获取该表的详细信息。这工作正常,我正在返回 Json 中的详细信息。
问题是我知道想在下面显示一个详细信息面板。现在,我在局部视图中完成了详细信息窗格。
我将如何使用 jquery “连接”,所以当我单击该行时,详细信息窗格会显示并填写正确的模型数据。
- 我是否放弃了 json 并简单地在我的控制器操作中生成 html 并将 html 返回到视图以显示详细信息窗格?
- 其他最佳实践或建议?
我有一个 asp.net mvc 视图,其中页面顶部是一个表格。我想要的是单击表中的一行,该行将转到服务器并获取该表的详细信息。这工作正常,我正在返回 Json 中的详细信息。
问题是我知道想在下面显示一个详细信息面板。现在,我在局部视图中完成了详细信息窗格。
我将如何使用 jquery “连接”,所以当我单击该行时,详细信息窗格会显示并填写正确的模型数据。
我假设您使用 MVC Ajax 助手来调用您的控制器以获取您的 JSon 结果?
另一种方法是使用 JQuery 调用您的 JSON 控制器。因此,在链接或按钮单击时,您可以调用一些 javascript,它会找到您需要从隐藏标签传递给控制器的 id。当您收到您的 JSon 结果时,您只需设置 html 标记的属性并显示/隐藏您的详细信息窗格。像这样的东西:
function ShowPartial() {
var ID = $("#hiddenValue").attr("value");
$.getJSON("YourUrl" + ID, function(result) {
$.each(result, function(item) {
// Set you html properties using this["JSonPropertyName"]
});
});
}
另一种方法是简单地使用 MVC Ajax 帮助程序并使用部分详细信息视图更新 div 标记,而不使用 JSon。
我会选择像jtemplates(jquery 插件)这样的客户端模板引擎来处理这个客户端。您可以简单地从控制器操作返回一个局部视图,并将该 html 呈现在页面上您想要的位置。但我认为从 ajax 请求返回 html 是不好的做法,我更愿意返回一个 json 对象。