MVC控制器返回给视图一个datatable,在视图中咋遍历显示这个数据表的内容啊
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MVC控制器返回给视图一个datatable,在视图中咋遍历显示这个数据表的内容啊相关的知识,希望对你有一定的参考价值。
MVC的版本是3.0哦。。
参考技术A Action中这样:ViewBag.Data = ...(DataTable对象)
视图中:
@
DataTable dt = (DataTable)ViewBag.Data;
for(var i=0;i<dt.Rows.Count;i++)
...//写代码。
追问
不好意思,还要再麻烦您一下,这是我的Action
在DataTable dt = ds.Tables[0];下面加这行:
ViewBag.Data = dt;
在视图中这样:
@
DataTable dt = (DataTable)ViewBag.Data;
for(var i=0;i<dt.Rows.Count;i++)
...//写代码。
<%
DataTable dt = (DataTable)ViewData["data"];
for (int i = 0; i < dt.Rows.Count; i++)
%>
<li>
<%= dt.Rows[i]["姓名"]%>
</li>
<%%>
</ul>
我用的是.net mvc2.0的,其实都一样,就是这个意思。 参考技术C 你得说你用的是什么framework,别人才好回答啊。
使用请求参数将javascript变量传递给spring MVC控制器
【中文标题】使用请求参数将javascript变量传递给spring MVC控制器【英文标题】:Passing javascript variable to spring MVC controller with request param 【发布时间】:2022-01-11 06:47:45 【问题描述】:是否可以将 javascript 变量发送到控制器端点,然后让控制器返回一个新视图? 我试过使用 requestbody 和 ajax 来做,它可以正确传递变量,但无法加载新视图。
也许有一种方法可以用百里香来做到这一点?
【问题讨论】:
@RequestParam 可用于传递值。也许您可以分享更多信息和一些代码,以便更好地了解您面临的问题。 我有一个控制器方法,我希望从 javascript 函数中传递一个变量。 ``` @GetMapping("/project/task") public String test(@RequestParam long id) // 从任务 id 创建模型,并转到新的视图页面 return "taskpage"; ``` 当点击一个任务(来自谷歌图表 api 的甘特图)时,javascript 函数会检索变量(任务 ID)。 ``` $.ajax( contentType: "application/json", type: "GET", data: taskId url: "/project/task/"+id, ); ``` 没有requestbody(它不会加载新页面)是行不通的 从 Javascript 你在 url 中传递 id。所以你可以使用@PathVariable 在控制器中获取它。 @GetMapping(“project/task/id”) public String test(@PathVariable Long id) @Cozimetzer 这几乎可以工作,除了它仍然不会加载新的 html 页面,而是保持在同一页面上.. 嗯.. 【参考方案1】:如果您使用的是 Thymeleaf,那么只需通过文件名引用您想要返回给用户的模板。
@Controller
public class YourController
@GetMapping("/someUrl")
public String getTemplate(@RequestParam String templateName)
return templateName;
这将是您需要的最低限度,假设您的模板位于正确的文件夹中 - 默认情况下位于 resources/static
。如果前端向后端发送GET (/someUrl?templateName=xyz)
,它将从您的模板中返回xyz.html
。如果没有找到参数中请求的模板,则返回 404。
编辑:通读 cmets,我意识到 @RequestParam
和 @PathVariable
之间可能存在混淆。如果你想使用路径变量来定义模板名称,以便前端可以调用GET (/someUrl/xyz)
,那么你可以这样做
@Controller
public class YourController
@GetMapping("/someUrl/templateName")
public String getTemplate(@PathVariable String templateName)
return templateName;
以下两者的资源:
https://www.baeldung.com/spring-request-param
https://www.baeldung.com/spring-pathvariable
【讨论】:
以上是关于MVC控制器返回给视图一个datatable,在视图中咋遍历显示这个数据表的内容啊的主要内容,如果未能解决你的问题,请参考以下文章
C# ASP.net MVC Ajax MySQL DATATABLES 列搜索无法将搜索值传递给控制器
asp.net mvc中Controller如何返回DataTable给页面