c# - 无法从模型中引用 asp:HIddenField
问题描述
在编写作业编码时,我需要将数据从代码隐藏传输到视图,以便我可以使用 Javascript 解析该数据并使用它构建一些 HTML,我决定使用 asp:HiddenField 来实现这一点.
但是,似乎出了点问题,因为我收到错误“当前上下文中不存在名称“HiddenFieldData””。
我假设我没有正确地将视图链接到模型。也许是因为我使用的模型不是合适的 cshtml.cs,而是通过控制器“给定”给视图的模型。说实话,这是我第一次使用 ASP.NET,所以问题很可能出在此处。
有问题的代码,我用'>>>>'标记了问题点:
控制器 -
public class saveController : Controller
{
// GET: Save
public ActionResult SaveRoute()
{
saveModel model = new saveModel();
Model given >>>> return View(model);
}
}
模型 -
public class saveModel
{
private DataMiner miner;
public saveModel(string ip = "127.0.0.1", int port = 5400, int duration = 10, int interval = 1000)
{
// Initialize miner
miner = new DataMiner(ip, port, duration, interval);
}
public void SaveRoute()
{
// Mine and retrieve data
miner.Mine();
double[][] data = miner.GetData();
int lines = data.GetLength(0);
int cols = data.GetLength(1);
string[] str_data = new string[lines];
for (int i = 0; i < lines; ++i)
{
// Turn double data into strings to write
str_data[i] = data[i].ToString();
}
// Write to file
System.IO.File.WriteAllLines(@"file1.txt", str_data);
// Write values to HiddenField
string values = String.Join(" ", str_data);
Error here >>>> HiddenFieldData.Value = values;
// Call JS function to load at
ScriptManager.RegisterStartupScript(this, GetType(), "showDataMined", "showDataMined();", true);
}
}
看法 -
@model RESTful_Flight_Simulator.Models.saveModel
@{
ViewBag.Title = "SaveRoute";
}
<html>
<head>
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" />
<script type="text/javascript" language="javascript">
function showDataMined()
{
var body = document.body
var tbl = document.createElement('table');
tbl.style.width = '100px';
tbl.style.border = '1px solid black';
for (var i = 0; i < 3; i++)
{
var tr = tbl.insertRow();
for (var j = 0; j < 2; j++)
{
if (i == 2 && j == 1) { break; }
else
{
var td = tr.insertCell();
td.appendChild(document.createTextNode('Cell'));
td.style.border = '1px solid black';
if (i == 1 && j == 1) {
td.setAttribute('rowSpan', '2');
}
}
}
}
// Build title for table
var title = document.createElement('h3');
title.innerHTML = "Data mined:";
// Finally, append title and table to body
body.appendChild(document.createElement('hr'));
body.appendChild(title);
body.appendChild(tbl);
}
</script>
</head>
<body>
HiddenField >>>> <asp:HiddenField id="HiddenFieldData" runat="server" value="" />
<h2>Saving route...</h2>
</body>
</html>
提前感谢您的帮助!
解决方案
推荐阅读
- curl - 如何防止环境变量在 Travis Log 中打印?
- google-apps-script - 应用程序脚本复制过滤的行,但复制它们
- c++ - C++:存储 lambda 函数列表
- javascript - Javascript url 查询字符串
- linux - Yocto 烤面包机卡在任务开始
- linux - 运行容器时Docker windows 10 localhost不起作用
- php - 从 Transliterator 转换中排除特定字符
- r - 如何创建 x 个垂直排列的 textInput?
- elasticsearch - 使用 pfx 拆分为单独的证书和密钥时,Elasticsearch 因 PEM 证书错误而崩溃
- lua - 如何在另一个脚本中调用服务器事件?