gpt4 book ai didi

c# - 如何使用 jQuery 数据表和 Controller 内的 HTML 呈现在 .Net MVC 中实现服务器端处理

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

我想创建一种可重用的方式来使用出色的 jQuery datatables为我所有包含表格的 View 添加 .Net MVC 插件。现在,我已经了解了使用此插件进行服务器端处理的方式以及我需要如何编写我的 Controller 逻辑以提供适当的响应。

不过,问题始于渲染 html。举例来说,我需要在“人物表”中每个人的名字旁边渲染一张图片。但是,当我在搜索框中键入内容时,它仍应按这些人的姓名正确搜索。

现在,使用 Razor View 引擎,这很容易,您可以编写如下内容:

@foreach (var person in people)
{
<tr>
<td>
<span>@person.Name</span>
<img src="@person.ImgUrl" title="@person.Name"/>
</td>
</tr>
}

问题是这需要在服务器端呈现为 JSON。您将有一个 Controller 来处理 jQuery 数据表 AJAX 请求并返回一个有效的 JSON 对象,其中包含数据表所需的一切。但是,您无法从 Controller 中的 View 访问片段。我在这里看到的唯一选择是为需要呈现某些特定 HTML 的每一列创建部分 View 。 (对于常见的用例,例如操作按钮,我可以编写 HTML 帮助程序)

问题来了。我犹豫要为每个 HTML 列的每个表创建部分 View 。

这里的问题是 Controller 需要以某种方式访问​​显示逻辑以创建 JSON,而显示逻辑通常是在 View 中编写的。我的选择仅限于使用部分 View 并将其呈现为 Controller 中的字符串,或者将我的显示逻辑(即 lambda 表达式)存储在某种服务器 session 或缓存中并从 Controller 中获取它。最后一种方法的一大缺点是 session 或缓存似乎太不稳定而无法依赖。

所以,重申一下:

  1. 我想使用带有 AJAX 服务器端处理的 jQuery 数据表插件显示一个实体表。
  2. 我想使用 Razor View 引擎编写在我的 View 中显示逻辑
  3. 我想在我的 Controller 中处理 jQuery 数据表 AJAX 请求
  4. 我想以某种方式**访问在我的 View 中编写的每列的显示逻辑**从我的 Controller 内来构造 JSON 响应。这是因为某些列可以具有自定义 HTML、加载部分等。

我真的很纠结于此,如果 Stackoverflow 上有类似的问题,请指出这些问题,因为我还没有找到它们。

预先感谢您的帮助。

最佳答案

我不确定我是否完全理解这个问题,但我认为你可以很容易地解决这个问题。与其尝试让 Controller 引用不起作用的 View ,不如让 jQuery 在 Ajax 请求中传递 Controller 所需的参数。然后 Controller 可以使用这些参数发送正确的 JSON 响应。

我认为你卡在了第二个问题上:

I want to write my display logic in my view, using the Razor view engine

datatables.net 很难做到这一点,因为显示逻辑在 javascript 中。您可以使用 JS 模板插件(如 mustache )并将其写入您的 View 。然后在您的 datatables.net js 中,您可以将 JSON 插入模板。

关于c# - 如何使用 jQuery 数据表和 Controller 内的 HTML 呈现在 .Net MVC 中实现服务器端处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15966208/

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