gpt4 book ai didi

javascript - 如何在 asp.net mvc 中刷新页面后保留注入(inject)的局部 View

转载 作者:行者123 更新时间:2023-11-30 18:04:20 30 4
gpt4 key购买 nike

我正在使用 ASP.NET MVC 4jQuery。我的 View 上有一个按钮控件。单击它时,它会将部分 View “注入(inject)”到我的 View 中。当我刷新页面时,部分 View 消失了。

我的 HTML 标记:

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

<div id="RuleDetails">
<div class="main-content">
<p>Some text.</p>
</div>
</div>

我的 jQuery 通过 AJAX 调用返回部分 View 以返回 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

<div class="main-content">
<h2>Rule Details</h2>
</div>

如果我要刷新页面,我需要这个“注入(inject)的”部分 View 保留在那里。目前,如果我要刷新它,它会“重置”,并且注入(inject)的部分消失了。

最佳答案

它不会再次呈现该部分 View ,因为它不记得按钮的点击状态。

实现您正在寻找的方法之一是使用 sammy.js

单击按钮后,您可以使用 sammy.js(例如:'#/partialview')设置 hashurl,并且在页面刷新时 hashurl 部分保持不变(但不去服务器)。然后您可以相应地操作客户端代码

  1. 在您的页面中引用 sammy.js。
  2. 像下面这样初始化sammy

         var app = $.sammy('body', function (context){

    this.get('#/PartialView1', function () {
    fnLoadPartialView();
    });

    });
  3. 将 Retrieve 更改为 href='PartialView1'

  4. 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 ();
});

关于javascript - 如何在 asp.net mvc 中刷新页面后保留注入(inject)的局部 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16192788/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com