我正在创建我的第一个 MVC 网站。在网站上,我需要创建一个页面,允许用户从存储在我的模型数据库中的对象中进行选择,输入一些附加数据(在文本字段中),然后单击一个按钮并进行计算,返回一个结果表。这些结果将不会存储在数据库中。此外,此数据表可能会根据选择的对象而改变列数等。
使用 MVC 执行此操作的最佳方法是什么?它不是标准的 CRUD 操作,我研究的所有 MVC 教程都只真正涵盖了 CRUD 操作。
我正在创建我的第一个 MVC 网站。在网站上,我需要创建一个页面,允许用户从存储在我的模型数据库中的对象中进行选择,输入一些附加数据(在文本字段中),然后单击一个按钮并进行计算,返回一个结果表。这些结果将不会存储在数据库中。此外,此数据表可能会根据选择的对象而改变列数等。
使用 MVC 执行此操作的最佳方法是什么?它不是标准的 CRUD 操作,我研究的所有 MVC 教程都只真正涵盖了 CRUD 操作。
在您的视图中,只需生成所需的 HTML 代码。在下文中,我假设SelectedObject
是您的用户选择呈现为表格的对象。
<table>
@for (int row = 0; row < SelectedObject.Rows; row++) {
<tr>
@for (int col = 0; col < SelectedObject.Columns; col++) {
<td>@SelectedObject.GetDataFor(row, col)</td>
@}
</tr>
@}
</table>
ASP.NET MVC 页面可以对任何类(包括 .Net 类)进行强类型化或完全非类型化,这没什么大不了的。
在你的位置,我会使用一个DataTable
对象(来自 System.Data)。您还可以签署结构或将字典列表传递给视图,但要实用。
您的操作(在控制器处):
[HttpPost]
public ActionResult DoMath(int yourArguments)
{
System.Data.DataTable yourTabularResults = new System.Data.DataTable();
//your magic
return View(yourTabularResults);
}
而你的观点:
@model System.Data.DataTable
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<title>DoMath</title>
</head>
<body>
<div>
@foreach (System.Data.DataRow currentLine in Model.Rows)
{
//do your job
}
</div>
</body>
</html>
问候