将视图作为部分视图返回和 Json 结果有什么区别
What is the difference between Returning View as a Partial View and Json Result
作为局部视图返回视图和Json结果有什么区别(在性能和其他方面)???
我们可以return在通过ajax调用controller方法时使用整个View(不是Partial View)吗?
in terms of performance
你不能比较两件设计用于完全不同目的的东西。
JSONResult
用于从 Controller 操作返回 json
。
PartialView
用于返回部分html内容。
当两者产生不同的输出时如何比较性能?
Can we return whole View(not Partial View) in when calling controller method through ajax??
是的,你可以。您将获得完整的结果 html。但是,如果您只需要刷新网页的一部分,则不应这样做。在这种情况下应使用部分视图,这样它就不会包括布局或任何母版页。
PartilaView
- 分部视图是一种普通视图,我们可以在多个视图中使用它。
- Partialview 有一些设计要显示在您的视图中。
贾森成绩
- Jason 结果是我们可以在视图中使用的数据列表或单个数据。
- Jason 结果只有 returns 一个数据,而不是 returns 像局部视图这样的视图。
我的模特喜欢
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
}
)};
});
});
作为局部视图返回视图和Json结果有什么区别(在性能和其他方面)???
我们可以return在通过ajax调用controller方法时使用整个View(不是Partial View)吗?
in terms of performance
你不能比较两件设计用于完全不同目的的东西。
JSONResult
用于从 Controller 操作返回 json
。
PartialView
用于返回部分html内容。
当两者产生不同的输出时如何比较性能?
Can we return whole View(not Partial View) in when calling controller method through ajax??
是的,你可以。您将获得完整的结果 html。但是,如果您只需要刷新网页的一部分,则不应这样做。在这种情况下应使用部分视图,这样它就不会包括布局或任何母版页。
PartilaView
- 分部视图是一种普通视图,我们可以在多个视图中使用它。
- Partialview 有一些设计要显示在您的视图中。
贾森成绩
- Jason 结果是我们可以在视图中使用的数据列表或单个数据。
- Jason 结果只有 returns 一个数据,而不是 returns 像局部视图这样的视图。
我的模特喜欢
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
}
)};
});
});