如何在asp.net mvc中刷新页面后保留注入的局部视图
我正在使用ASP.NET MVC 4
和jQuery
。 我的视图上有一个按钮控件。 单击它时,它会将部分视图“注入”到我的视图中。 当我刷新页面时,局部视图消失了。
我的HTML标记:
Some text.
我的jQuery使用AJAX调用返回部分视图以返回HTML:
$('#RetrieveButton').click(function () { $.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'); } }); });
我的行动方法:
public ActionResult GetRuleDetails() { RuleViewModel viewModel = new RuleViewModel(); return PartialView("_RuleInformation", viewModel); }
我的部分观点:
@model MyProject.ViewModels.Rules.RuleViewModel Rule Details
如果我要刷新页面,我需要这个“注入”的局部视图保留在那里。 目前,如果我要更新它,它会“重置”,并且注入的部分消失了。
它不会再次呈现该局部视图,因为它不会记住单击的按钮状态。
实现您正在寻找的东西的方法之一是使用sammy.js
单击按钮,您可以使用sammy.js
设置sammy.js
(例如: '#/partialview'
),页面刷新hashurl部分保持不变(但不会转到服务器)。 然后您可以相应地操纵客户端代码
- 在您的页面中获取sammy.js参考。
-
如下所示初始化sammy
var app = $.sammy('body', function (context){ this.get('#/PartialView1', function () { fnLoadPartialView(); }); });
-
更改检索到href =’PartialView1′
-
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'); } }); }
5。
$('#RetrieveButton').click(function () { fnLoadPartialView (); });