Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在asp.net mvc中如何在页面刷新后保留插入的部分视图_Javascript_Asp.net_Asp.net Mvc_Jquery - Fatal编程技术网

Javascript 在asp.net mvc中如何在页面刷新后保留插入的部分视图

Javascript 在asp.net mvc中如何在页面刷新后保留插入的部分视图,javascript,asp.net,asp.net-mvc,jquery,Javascript,Asp.net,Asp.net Mvc,Jquery,我使用的是ASP.netmvc4和jQuery。我的视图上有一个按钮控件。当它被点击时,它会将部分视图“注入”到我的视图中。当我刷新页面时,部分视图就消失了 我的HTML标记: <button id="RetrieveButton" type="button">Retrieve</button> <div id="RuleDetails"> <div class="main-content"> <p>So

我使用的是
ASP.netmvc4
jQuery
。我的视图上有一个按钮控件。当它被点击时,它会将部分视图“注入”到我的视图中。当我刷新页面时,部分视图就消失了

我的HTML标记:

<button id="RetrieveButton" type="button">Retrieve</button>

<div id="RuleDetails">
     <div class="main-content">
          <p>Some text.</p>
     </div>
</div>
我的行动方法:

public ActionResult GetRuleDetails()
{
     RuleViewModel viewModel = new RuleViewModel();

     return PartialView("_RuleInformation", viewModel);
}
我的部分观点是:

@model MyProject.ViewModels.Rules.RuleViewModel

<div class="main-content">
     <h2>Rule Details</h2>
</div>
@model MyProject.ViewModels.Rules.RuleViewModel
规则详细信息

如果我要刷新页面,我需要这个“注入的”局部视图保持在那里。当前,如果我要刷新它,它将“重置”,并且注入的部分已消失。

它不会再次呈现该部分视图,因为它不记得按钮的单击状态

实现您想要的目标的方法之一是使用

点击按钮,您可以使用
sammy.js
(例如:
“#/partialview”
)设置hashurl,页面上的刷新hashurl部分保持不变(但不会转到服务器)。然后您可以相应地操作客户机代码

  • 在页面中引用sammy.js
  • 像下面这样初始化萨米

         var app = $.sammy('body', function (context){
    
               this.get('#/PartialView1', function () {
                    fnLoadPartialView();
                });
    
    });
    
  • 将检索更改为使用href='PartialView1'

  • 五,

         var app = $.sammy('body', function (context){
    
               this.get('#/PartialView1', function () {
                    fnLoadPartialView();
                });
    
    });
    
    function fnLoadPartialView (){
             $.ajax(
         {
              type: 'POST',
              url: '@Url.Action("GetRuleDetails")',
              data: {
                   systemCode: $('#SystemCodes').val()
              },
              dataType: "html",
              success: function (result) {
                   alert('success');
                   var domElement = $(result);
                   $("#RuleDetails").html(domElement);
              },
              error: function (result) {
                   alert('error');
              }
         });
    
                }
    
    $('#RetrieveButton').click(function () {
         fnLoadPartialView ();
    });