2016-04-20 12 views
0

Also ich benutze ASP.NET und MVC und versuche, eine Liste von Zeichenfolgen und füllen Sie ein Formular mit ihnen. Im Wesentlichen sollte jemand in der Lage sein, Kontonummern zu importieren, ein Formular mit ihnen zu füllen und dann auf die Schaltfläche "Senden" zu klicken. Ich habe die Saiten bekommt, und sie über mit ViewBag übertragen, (ich habe schon versucht, diese mit Viewdata und TempData auch) wie folgt:Iterating durch ViewBag Strings, dann füllen ein Formular mit ihnen

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(); 

} 

Hier ist der HTML-Code. Ich versuche, durch die Gegenstände zu suchen und schleiche etwas Javascript zwischen den Razor-Code, um das Formular zu füllen.

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

ich in dem Chrome-Debugger sehen kann, dass es eine document.getElementById usw. für jeden String in der Liste erstellen und sie anschließend Einstellung aber im Idealfall würde ich eine bevölkerten Liste von Kontonummern sehen in dem Formular für den Benutzer zu übermitteln. Es ist möglich, dass etwas mit der tatsächlichen Form nicht stimmt, also habe ich das auch hier aufgenommen.

<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> 

Jede Anleitung hier würde wirklich geschätzt werden. Danke an alle.

+0

nur ein Kommentar. Ich habe bemerkt, dass "ActInput" im HTML und "Actinput" im Formular. Das war ein Fehler bei der Eingabe des Codes hier und wird nicht im tatsächlichen Code wiedergegeben. Das ist also nicht das Problem. – Josh

Antwort

0

Es ist nicht wirklich klar, was Sie tun möchten. Hat das Formular viele Eingaben oder nur einen? Wenn es nur eine ist, wie es aus dem Code scheint, dass Sie hier eingefügt, beachten Sie, dass diese Zeile

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

viele Male in Ihrem @foreach 1 wiederholt) ist es nicht die notwendige halb Säule am Ende der enthält Anweisung und 2) wird nur den gleichen Eingabewert immer wieder ersetzen, was ich glaube nicht, was Sie brauchen.

Auch sollte Ihre Html sein:

<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> 

Sie die Eingabe in die falsche Art und Weise geschlossen und die ID war "Actinput" statt "ActInput"

+0

Ja, du verstehst mein Problem. Das Problem besteht jedoch eher darin, das Eingabeformular zu füllen. Ich kann mit Razor (ViewBag, Model., ViewDatat und TempData) alle erfolgreich die Liste der Strings zur Ansicht übertragen - kein Problem. Das Problem wird dann das Formular ausfüllen. Es mag nicht, Rasierer und Javascipt zu mischen (sollte beachtet werden, dass ich zur Zeit einen Syntaxfehler bekomme, aber es läuft immer noch). Derzeit versuchen, die Klammern zu verwenden, um deutlich zu zeigen, dass ich JavaScript verwende, aber es ist nicht bevölkern. – Josh

+0

also denke ich, dass selbst wenn ich eine lange Zeichenfolge hätte, würde es immer noch nicht auffüllen, da ich nicht auf das Formular zugreifen kann, nicht? – Josh

+0

Ok Ich habe die Antwort bearbeitet, lass es mich wissen – tocqueville

Verwandte Themen