【问题标题】:How to dynamically add/delete rows in asp.net mvc? [duplicate]如何在 asp.net mvc 中动态添加/删除行? [复制]
【发布时间】:2017-02-11 16:40:59
【问题描述】:

我想在我的 asp.net mvc 视图中有一个“添加行”功能。 我可以做到的一种方法是在每次单击“添加行”时隐藏 n 行并取消隐藏一行。但是,当删除一行时,我将如何处理序列号(每行都有一个序列号)。 我不想用 JS 来做。什么是最好的方法。我应该从后面的代码中做到这一点吗?有什么建议吗?

【问题讨论】:

  • 讨厌把它给你,但唯一干净和理智的方法是让 JavaScript 帮助你。如果您计划从事 Web 开发职业,您将需要接受并学习该学科。否则请您的前端人员执行此部分。
  • 我可以用 JS 做到这一点,但我已经阅读并听说它不是正确的方法。它会导致问题。
  • 您从哪里听说这不是正确的方法?有什么问题?要使您的 UI 动态化(删除后不回发),您应该使用 javascript。不知道为什么人们不喜欢 javascript!
  • @stylojack_10 不确定您从哪里获得该指南,他们的指南中没有其他选择?
  • 如何在没有 javascript 的情况下取消隐藏行?

标签: c# asp.net-mvc dynamic-html


【解决方案1】:

我不确定您为什么不想使用 javascript 和客户端的所有内容来执行此操作。这对用户来说会是更好的体验,而且会更快。

但是,由于您明确指出要在后面的代码中执行此操作,因此请执行此操作。创建一个局部视图并将新行所需的 html 放入其中。然后,您需要调用您的控制器从客户端为您提供该 html。您可以使用 AJAX 来做到这一点。这是使用 jQuery 的方法:

$.ajax({
    type: "GET",
    url: "/Home/GetSomePartialView/",
    data: someArguments,
    success: function (viewHTML) { 
    $("#someDiv").html(viewHTML); 
 },
    error: function (errorData) { onError(errorData); }
});

上面将获取 html 并将其注入 ID 为 someDiv 的元素中。

您将需要控制器中的操作来提供 html。这是一些代码:

public Action result GetSomePartialView(SomeArgumentModel someArguments)
{

    return PartialView("_NewRow");
}

【讨论】:

  • JQuery 是 javascript,没有 javascript 就没有 Ajax。
  • 是的,但我从未说过以上任何一句话。完全同意您的意见。
  • 我需要 Ajax 来显示一行??!!它只是在 UI 中。
  • 不知道为什么有人如此好奇地对此投反对票;我知道 OP 正在寻找没有 JS 的实现,但据我了解,OP 不想在 JS 端做太多的 html 操作。如果您执行 ajax 来获取部分视图 html,然后将其附加到容器中,我会采用这种方法。或者我会选择与 mvc 完美融合的 knickoutJs
  • @Dveloper 这正是我从 op 的问题中得出的结论,即 OP 不想在客户端创建行但愿意将 js 用于它的其他部分
【解决方案2】:

使用 Ajax 调用网络方法,该方法会为您调用删除 SQL,并使用 JS 中的新结果重新绑定网格。

【讨论】:

  • 没有 javascript 的 Ajax ?????
  • 没有。使用 javascript。
  • 阅读问题! “我不想用 JS 做”
  • 我不太确定我是否理解这一点。它与数据库无关。该表将仅在前端,数据将在保存时发布。没有别的了。
猜你喜欢
  • 2011-06-12
  • 1970-01-01
  • 2015-04-25
  • 1970-01-01
  • 2016-08-14
  • 1970-01-01
  • 1970-01-01
  • 2011-08-09
  • 1970-01-01
相关资源
最近更新 更多