返回视图作为局部视图和Json结果有什么区别

时间:2015-01-09 08:44:19

标签: asp.net-mvc json asp.net-ajax

作为局部视图返回视图和Json结果(在性能和其他方面)之间的区别是什么?

在通过ajax ??

调用控制器方法时,我们可以返回整个视图(不是部分视图)

2 个答案:

答案 0 :(得分:0)

  
    

在绩效方面

  

当设计用于完全不同的目的时,你无法比较两件事。

JSONResult用于从Controller操作返回json

PartialView用于返回部分html内容。

当两者产生不同的输出时,如何比较性能?

  
    

在通过ajax ??

调用控制器方法时,我们可以返回整个视图(不是部分视图)   

是的,你可以。你会得到整个HTML的结果。但如果您只需刷新网页的部分,就不应该这样做。而是在这种情况下使用局部视图,以便它不包括布局或任何包含该页面的母版页。

答案 1 :(得分:0)

<强> PartilaView

  1. Partialview是一个普通视图,我们可以在多个视图中使用它。
  2. Partialview在您的视图中显示了一些设计。
  3. 杰森结果

    1. Jason Result是我们可以在视图中使用的数据列表或单个数据。
    2. Jason Result只返回一个数据而不返回像partial view这样的视图。
    3. 我的模特喜欢

      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);
                  }
              });
          });
      });
      

      控制器操作方法应该如下

      [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
                  }
              )};
          });
      });