Итерация по строкам ViewBag, затем заполнение формы ими
Поэтому я использую 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-код. Я пытаюсь перебрать элементы и пробираюсь в некотором JavaScript между кодом Razor, чтобы заполнить форму.
<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>
Любое руководство здесь будет очень цениться. Спасибо всем.
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>
Вы неправильно закрыли ввод, и вместо "ActInput" был указан идентификатор "Actinput"