如果您不想将 Razor 标记与 JavaScript 混合,那么 AJAX 调用可能是最好的。使用 jQuery,您可以向返回序列化模型的控制器端点发出 get 请求。当然,主要的警告是这种方法需要在初始页面加载之上额外往返服务器,但我不会让这阻止我。
客户端
$(function() {
$.getJSON('part/get', function(data) {
// do something with response
});
}
服务器端
public class PartChangeModel { }
public class PartModel { }
public class BOMItemModel { }
public class PartViewModel { }
public class PartController : Controller {
public ActionResult Get() {
var partChangeModel = new PartChangeModel { /* init properties via repo, etc. */ }
var partModel = new PartModel { /* init properties via repo, etc. */ }
var bomItemModel = new BOMItemModel { /* init properties via repo, etc. */ }
var viewModel = new PartViewModel {
PartChangeModel = partChangeModel,
PartModel = partModel,
BOMItemModel = bomItemModel
}
return Json(viewModel);
}
}