gpt4 book ai didi

jquery - 刷新/更新 MVC 页面部分的最 "MVC"标准方法是什么?

转载 作者:行者123 更新时间:2023-12-01 03:01:26 24 4
gpt4 key购买 nike

我有一个显示数据表的网页。我的页面在某些元素上有 jQuery,这样当元素更改时,就会对数据库进行 Ajax 调用,并且元素会在数据库中更新。

我有时还需要完全刷新数据网格。在我看来,有两种方法可以做到这一点:

1) 使用 Ajax 调用我的 Controller 操作,使用 Request.IsAjaxRequest 检查是否是 Ajax 请求,将 HTML.Partial 返回到调用 Ajax 的 javascript 并更新 HTML。我的这个方法已经 90% 有效了。

Previous stackoverflow question

2)使用以下内容:

<div id="#thingy">@Html.Action("Detail", new { ac, me })</div>  
$('#thingy').load("@Server.JavaScriptStringEncode(Url.Action("Detail", new { ac, me }))");

现在我仍在尝试让第一种方法发挥作用,但也在研究第二种方法,并认为它看起来容易得多。

我想编写可以工作的代码,但也想编写最符合 MVC 做事方式的代码。考虑到这一点。哪种方法可能是最好的方法?我关心的一件事是 @Server.Java... 代码。我以前从未见过这种情况,我想知道 MVC 是如何处理这种情况的,是否应用了所有正常的安全性?

最佳答案

梅丽莎,

我几乎肯定会坚持使用局部 View (和@RenderPartial())如果 View 中的模型与局部 View 中的模型相同,否则你可以选择 @RenderAction() 帮助程序在基本数据类型与基本 View 数据类型显着不同的 View 中调用数据刷新。

您将从您的应用程序中知道哪种方法最适合所讨论的用例,但 RenderPartial() 肯定是主要的方法,其中需要在稍后的地方进行 ajax 更新才能更新div 中的 html。

[编辑] - 以下是我在实践中的看法:

// this is a div contained within the main Detail.cshtml view
<div id="#thingy">@Html.RenderPartial("_Detail", Model)</div>

这会在第一次传递时自动根据名为 _Detail.cshtml 的部分 View 填充模型中的 div。随后,您将调用 ajax 通过一个操作来定位同一个 div (#thingy),该操作返回上述的部分 View 和模型。

即:

public ActionResult Detail(string ac, string me) {     
vm.AdminDetails = _link.Detail(ac + me).ToList();
if (Request.IsAjaxRequest())
return PartialView("_Detail", vm);
return View(vm);
}

希望这是有道理的。

祝你好运

关于jquery - 刷新/更新 MVC 页面部分的最 "MVC"标准方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8787041/

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