Ich habe ein Formular mit verschiedenen Eingabefeldern, wo Benutzer ihre Informationen eingeben können.
Innerhalb des Formulars habe ich 2 Tasten. Wenn der Benutzer auf eine Schaltfläche namens "Adresse hinzufügen" klickt, möchte ich ein div mit der Adresse füllen. Und wenn der Benutzer auf eine andere Schaltfläche mit der Bezeichnung "Vorschau" klickt, wird das Formular validiert und für die Vorschau vorbereitet.Zeige Werte von Controller in Sicht in asp.net mvc
Unten ist, wie ‚My adrress‘ Button in Index.cshtml definiert ist
<button id ="address" class="btn btn-default" onclick="location.href='@Url.Action("populateAddress","Information")?addressID=2222'">
Add Address
</button>
Also, wenn Benutzer klickt, Adresse hinzufügen, ich möchte die Adresse füllen, die ich aus der Datenbank in den div bin Abrufen auf Index.cshtml. Unten ist, wo ich die abgerufene Adresse angezeigt werden soll:
<div class="row">
<div class="col-md-1"></div>
<div class="col-md-3">
@Html.Label("Address", htmlAttributes: new { @class = "control-label" })
</div>
<div class="col-md-6">
@ViewBag.FeedAddress //Here I want to display my retrieved address
</div>
</div>
Also, auf den Knopf klicken, ich meine ‚Information‘ Controller-Methode ‚populateAddress‘ und vorbei an den AddressID Parameter ‚2222‘ nenne.
Unten ist, wie ich meine 'populateAddress' Methode in meinem Controller am definieren:
public void populateAddress(string addressID = null)
{
var addressDetail = db.Agency.Where(e => e.AddressCode == addressID).ToList();
string AddressRetrieved= "";
string StreetAddress, City, State, Zip = "";
foreach(var detail in addressDetail)
{
StreetAddress = detail.Address;
City = detail.City;
State = detail.State;
Zip = detail.Zip;
AddressRetrieved= StreetAddress + Environment.NewLine + City + ", " + State + " - " + Zip;
}
ViewBag.FeedAddress = AddressRetrieved
}
So, hier ist mein ViewBag mit meiner Adresse abgerufen gefüllt zu werden.
Aber mein Problem ist, nachdem es mit der Adresse gefüllt wird, anstatt es auf meiner Index.cshtml Seite im div zu zeigen, wo ich den Wert von ViewBag zurückziehe, wird meine Seite stattdessen eingereicht und zeigt meine Validierungen.
Ich möchte, dass, sobald Benutzer füllt einen Teil des Formulars über "Add Address" -Taste und klickt auf "Add Address" -Taste, meine Adresse aus ViewBag abgerufen wird, innerhalb der div angezeigt und Benutzer weiter füllen den Rest der bilden.
Ich bin nicht in der Lage, diese Art von Verhalten zu bekommen.
Kann mir bitte jemand helfen, dieses Verhalten zu erreichen oder kann sagen, was ich vermisse. Vielen Dank!
EDIT:
Bitte finden Index.cshtml Code. Die Seite ist lang, so dass ich einfach nur mit erforderlichem Code:
// input fields for user
<div class="form-group">
<div class="col-md-2">
@Html.Label("Title", htmlAttributes: new { @class = "control-label" }) </div>
<div class="col-md-6">
@Html.EditorFor((e => e.Title), new { htmlAttributes = new { @class = "form-control" } })
</div>
</div>
//Add Address button
<button id ="address" class="btn btn-default" onclick="location.href='@Url.Action("populateAddress","Information")?addressID=2222'">
Add Address
</button>
//section to display retrieved address
<div class="row">
<div class="col-md-1"></div>
<div class="col-md-3">
@Html.Label("Address", htmlAttributes: new { @class = "control-label" })
</div>
<div class="col-md-6">
@ViewBag.FeedAddress //Here I want to display my retrieved address
</div>
</div>
// input fields for user
<div class="form-group">
<div class="col-md-2">
@Html.Label("Description", htmlAttributes: new { @class = "control-label" }) </div>
<div class="col-md-6">
@Html.EditorFor((e => e.Description), new { htmlAttributes = new { @class = "form-control" } })
</div>
</div>
//Preview Button
<div class="form-group">
<div class="col-md-offset-2 col-md-6">
<input type="submit" value="Preview" class="btn btn-default" />
</div>
</div>
können Sie das komplette Code-Snippet der 'Index.cshtml'-Seite einschließlich der' Submit-Schaltfläche' und usw. teilen? – Sampath
@Sampath: Ich habe gerade meinen Beitrag bearbeitet, um Index.cshtml anzuzeigen. – Kristy
Das erste Problem ist onclick = "location.href = ..." Verwenden Sie AJAX, um den Controller aufzurufen und dann das Formular anhand des Ergebnisses aufzufüllen. – nurdyguy