gpt4 book ai didi

c# - 在 ASP.NET MVC 中执行 ListView 的最佳方法?

转载 作者:行者123 更新时间:2023-11-28 02:57:57 25 4
gpt4 key购买 nike

基本上,既然无法使用 asp:listview 控件,我应该怎么做?

我正在从 Webforms 迁移到 MVC,之前的实现位于 <asp:ListView...>那么我现在应该如何做才能为用户提供最佳用户体验呢?即:我需要 ajax 一切。

谢谢

最佳答案

您现在应该使用标准列表框。如果您需要从 Controller 返回列表,您将返回一个 SelectList [我认为就是这样]。

要使用 ajax 选择列表,您可以使用 jQuery 添加单击和更改事件,然后这些事件将在 Controller 中调用 actionresults。

编辑

啊,对了,有几种方法。您可以使用 jQuery 网格来显示行并允许您编辑删除按钮。然后,您发回操作,进行更改并返回。当然都是 Ajax。

另一种方法可能是编写几个 PartialView。第一个循环遍历您的集合,第二个显示该行。最后一个可能会说按钮或复选框或其他什么。

然后,您再次通过 ajax 发回操作结果,进行更改并返回。

您的操作结果可以返回完全呈现的部分 View ,因此在进行更改后,返回数据行的新部分 View 并用新的替换旧的。

编辑2如果您想要代码,请发表评论,我会提供

编辑3

那里有很多 jQuery 网格,只需 google 一下即可。

对于部分 View ,类似这样的东西会起作用;

HTML 部分 View 1 称为 BenefitList;

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IQueryable<Models.Benefit>>" %>

<% foreach(Benefit benefit in Model){ %>
<% Html.RenderPartial("Benefit", benefit); %>
<% } %>

HTML 部分 View 2;

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Models.Benefit>" %>

<fieldset class="Benefit benefit" id="<%= Model.Id %>">
<legend><label class="Title"><%= Html.Encode(Model.Title) %></label> <a class="BenefitDescriptionView" href=".">View</a><a class="BenefitDescriptionEdit" href=".">Edit</a></legend>
<div class="BenefitDescription hidden">
<%= Html.Encode(Model.Description) %>
</div>
</fieldset>

一些 jQuery 供您对操作结果进行发布;

 function jQueryDeleteBenefit() {
$.post("/Home/jQueryDeleteBenefit", { Id: YOURID },
function(NEWHTML) {
$('.EditProductContainer').html(NEWHTML);
});
}

行动结果;

    [AcceptVerbs(HttpVerbs.Post)]
public void jQueryDeleteBenefit(int id
{
//delete item

return PartialView("BenefitList", AllMyBenefits);
}

关于c# - 在 ASP.NET MVC 中执行 ListView 的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2106692/

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