我有这个 ASP.NET MVC 3 页面,我在其中循环模型中的对象集合,基本上我将在每个实体信息/显示旁边有一个按钮,以允许用户在 jQuery UI 对话框中编辑该实体。
我坚持的是找到将实体信息传递给 jquery 对话框的最佳方法。
我正在考虑使用许多 data-x 属性,一个用于对象的每个属性,或者只是将实体 JSON 表示存储在单个 data-x 属性中。
传递信息并在 jQuery UI 对话框中分配信息的最佳方法是什么?如果有人有任何样品,那就太好了。谢谢。
我有这个 ASP.NET MVC 3 页面,我在其中循环模型中的对象集合,基本上我将在每个实体信息/显示旁边有一个按钮,以允许用户在 jQuery UI 对话框中编辑该实体。
我坚持的是找到将实体信息传递给 jquery 对话框的最佳方法。
我正在考虑使用许多 data-x 属性,一个用于对象的每个属性,或者只是将实体 JSON 表示存储在单个 data-x 属性中。
传递信息并在 jQuery UI 对话框中分配信息的最佳方法是什么?如果有人有任何样品,那就太好了。谢谢。
您可能会考虑做的一件事是设置一个控制器,负责将服务作为 JSON 字符串发布,然后在您的按钮单击事件(启动 jQuery 对话框)中调用该服务。为此,您将需要像jsonfx(我个人最喜欢的)这样的 JSON 序列化程序的帮助,您可以在 VS 中将其作为 nuget 包下载。
例如,如果您正在调用单个实体:
public class ServiceController : Controller
{
public ActionResult GetFoo(FormCollection fc)
{
var json = MyFooGetter(fc["fooId"]); //Id of the object
var writer = new JsonWriter();
return Content(writer.Write(json), "application/json");
}
}
在客户端,您请求此服务,如下所示:
$.post("/service/GetFoo", {fooId: "1"}, function (response) {
//Do stuff with your response object which is a traversable JSON version of your entity(ies).
//Example:
var h1 = $("<h1>");
h1.html(response.title);
$("document").append(h1);
});
实体集合的另一个示例:
public class ServiceController : Controller
{
public ActionResult GetFooCollection()
{
var json = MyFooCollectionGetter();
var writer = new JsonWriter();
return Content(writer.Write(json), "application/json");
}
}
在客户端,您请求此服务,如下所示:
$.post("/service/GetFooCollection", function (response) {
//Do stuff with your response object which is a traversable JSON version of your entity(ies).
//Example:
$.each(response,function(i){
alert(response[i].title);
});
});
祝你好运!