【发布时间】:2015-01-09 08:44:19
【问题描述】:
Returning View as a Partial View 和 Json Result 有什么区别(在性能和其他方面)???
通过ajax调用控制器方法时,我们可以返回整个视图(不是部分视图)吗??
【问题讨论】:
标签: asp.net-mvc json asp.net-ajax
Returning View as a Partial View 和 Json Result 有什么区别(在性能和其他方面)???
通过ajax调用控制器方法时,我们可以返回整个视图(不是部分视图)吗??
【问题讨论】:
标签: asp.net-mvc json asp.net-ajax
PartilaView
杰森结果
我的模特喜欢
public class ModelName_1
{
public string Name { get; set; }
public int age { get; set; }
}
局部视图示例
1.主视图代码:
我在下面提到的名称partialView_1应该与您的部分名称匹配。 下面提到的 ModelName_1 必须与您在局部视图中提到的模型名称匹配。
<div id="myPartial" >
@Html.Partial("partialView_1", new ModelName_1())
</div>
2。部分查看代码:
@model ModelName_1
@if (Model != null)
{
var count = 1;
<table class="table">
<thead>
<tr>
<td>No</td>
</tr>
</thead>
<tbody>
<tr>
<td>Year @item.Year end </td>
</tr>
</tbody>
</table>
}
Javascript
$(document).ready(function () {
$('#MybuttonId_2').on('click', function () {
$.ajax({
url: '@Url.Action("Mymethod")',
type: 'GET',
success: function (result) {
$('#myPartial').html(result);
}
});
});
});
Controller Action 方法应该如下所示
[HttpGet]
public ActionResult Mymethod()
{
ModelName_1 model= new ModelName_1();
List<TableDetails> monthlyDetails = getYearlyDetails(fulldetails);
return PartialView("_tableView", model);
}
================================================ ==============================
对于 JASON RESULT,我们必须像下面那样做
控制器方法如下:
[HttpPost]
public JsonResult MyJasonMethod()
{
ModelName_1 model = new ModelName_1();
return this.Json(model, JsonRequestBehavior.AllowGet);
}
JavaScript 如下所示:
$(document).ready(function () {
$('#MybuttonId').on('click', function () {
$.ajax({
url: '@Url.Action("MyJasonMethod")',
type: 'POST',
success: function (result) {
$('#mortagepayLable').text(result.Name);
// some thing you do with the jason result
}
)};
});
});
【讨论】:
在性能方面
当两个东西的设计目的完全不同时,你无法比较它们。
JSONResult 用于从 Controller 操作返回 json。
PartialView用于返回部分html内容。
当两者产生不同的输出时,您如何比较性能?
通过ajax调用控制器方法时,我们可以返回整个视图(不是部分视图)吗??
是的,你可以。您将获得整个 html 的结果。但是,如果您只需要刷新网页的一部分,则不应该这样做。而是在这种情况下使用部分视图,这样它就不会包含布局或任何母版页。
【讨论】: