【问题标题】:Iterating Through ViewBag Strings, then populating a form with them遍历 ViewBag 字符串,然后用它们填充表单
【发布时间】:2016-04-20 00:34:33
【问题描述】:

所以我使用 ASP.NET 和 MVC 并尝试获取字符串列表并用它们填充表单。本质上,某人应该能够导入帐号,用它们填充表单,然后点击提交按钮。我得到了字符串,并使用 ViewBag 将它们传输过来(我也尝试过使用 ViewData 和 TempData),如下所示:

public ActionResult Index(){

    String Path = @“C:\Users\a584619\testdata.xlsx”;
    String SheetName = “Sheet1”;
    DataReader dr = new DataReader();
    List<String> data = dr.readExcelFile(SheetName,Path);

    ViewBag.ExcelSSNS = data;

    return View();

}

这是 html 代码。我试图遍历这些项目,并在 Razor 代码之间潜入一些 javascript 以填充表单。

<script>
function getExcelSSNs(){
@foreach (string s in ViewBag.ExcelSSNs)
{
       <text>
document.getElementById(“ActInput”).value = @s + “\n"
       </text>
    }
}

我可以在 Chrome 调试器中看到它正在为列表中的每个字符串创建一个 document.getElementById 等,然后进行设置,但理想情况下,我会在用户提交的表单中看到一个填充的帐号列表.实际表格可能有问题,所以我也将其包括在此处。

<div id = “input”>

<form>
    <input type = “text” id = “Actinput” class = “form-control” placeholder = “Paste/Import Here” required style = “ display : table; height : 45h; resize: none; border-radius: 0px; overflow-y: scroll”>
</form>
</input>

这里的任何指导将不胜感激。谢谢大家。

【问题讨论】:

  • 只是一个评论。我注意到 html 中的“ActInput”和表单中的“Actinput”。这是我在此处输入代码时的错误,并没有反映在实际代码中。所以这不是问题。

标签: javascript html asp.net-mvc razor viewbag


【解决方案1】:

目前还不清楚你想做什么。表单有很多输入还是只有一个?如果它只是一个,就像您在此处粘贴的代码一样,请注意这一行

document.getElementById(“ActInput”).value = @s + “\n"

在你的@foreach 中重复了很多次 1) 它在语句末尾不包含必要的半列 2) 只会一遍又一遍地替换相同的输入值,我认为这不是什么你需要。

另外,你的 Html 应该是:

<form>
    <input type="text" id="ActInput" class="form-control" placeholder="Paste/Import Here" style="display: table; height: 45px; resize: none; border-radius: 0px; overflow-y: scroll" required/>
</form>

您以错误的方式关闭输入,并且 id 是“Actinput”而不是“ActInput”

【讨论】:

  • 是的,你理解我的问题。但是,问题更多是关于填充输入表单。我可以使用 Razor(ViewBag、Model.、ViewDatat 和 TempData),它们都成功地将字符串列表传输到视图 - 没问题。然后问题就变成了填充表单。它不喜欢混合 razor 和 javascipt(应该注意,目前,我遇到了语法错误,但它仍然运行)。目前尝试使用 括号清楚地表明我正在使用 javascript,但它没有填充。
  • 所以我在想,即使我有一个长字符串,它仍然不会填充,因为我无法访问表单,不是吗?
  • 所以我添加了分号,它确实解决了我的语法错误(谢谢)。使用 html,我实际上已将其更改为
  • 你会更新你的问题吗,也许在dotnetfiddle.net上添加你的代码的更新版本?
猜你喜欢
  • 2017-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多