MVC 4 button onClick, ruft razor-Funktion
Habe ich MVC 4-Anwendung. Hier ist der Fall:
1. Modell HashKey - mit 1 string key
2. Modell ModelObjectA - mein Objekt zu transportieren.
3. Klasse A - generate unique-key auf Anfrage und setzen es in TempData zusammen mit der gegebenen ModelObjectA und gibt dieses einzigartige Taste.
4. Controller ControllerModelObjectA - dienen als Reine controller.
5. Ansicht ShowAllModelObjectA - anzeigen Seite für die Anzeige der Sammlung von controller.
Wie das funktioniert. Ich habe die Anfrage zu navigieren, ShowAllModelObjectA. Der controller rufen Sie die Klasse Ein, mit dem Objekt zu übertragen und sendet den eindeutigen Schlüssel der ShowAllModelObjectA. Die Ansicht ruft die Methode zu bekommen (nicht HttpGET) das Objekt zugehoerigen dem empfangenen Schlüssel von der Steuerung. Diese Sammlung von Objekt empfangen wird und im @foreach-Schleife zerlegt die Objekte und setzen Sie Sie in eine Tabelle. Zusammen mit dem Objekt in der Tabelle ist geputtet auch 3 Tasten, stellt verschiedene Funktionen (details Anzeigen, löschen, Bearbeiten), um entsprechende Objekt.
Das problem:
Auf jedes Objekt der Taste, die ich habe zu verwenden von @ - Funktionen aufrufen, ClassA und senden das Objekt selbst, sondern NUR auf klicken Sie nicht auf die for-Schleife.
Hier ist ein code (ich habe die Namen ändern 🙂 )
@functions{
public string ButtonClicked(ModelObjectA object)
{
System.Diagnostics.Debug.WriteLine("in");//to check when the method is called
return "dae";
}
}
The foreach loop:
<table>
@foreach (ModelObjectA Object in ModelObjectACollection)
{
<tr>
<td>
@Html.DisplayFor(modelItem => Object.Name)
</td>
<td>
@Html.DisplayFor(modelItem => Object.Email)
</td>
<td>
<button type="button" id="details" value="@Object" onclick="hello(value);">Details</button>
<button type="button" value="@Object">Edit</button>
<button type="button" value="@Object">Delete</button>
</td>
</tr>
}
</table>
<script type="text/javascript">
function hello(Value) {
alert("Clicked");
}
</script>
Seit heute habe ich Zugang zu den @ModelObjectA, aber ich kann nicht senden Sie es an das razor-Funktion, denn java auf der client-Seite und razor auf dem server.
Gibt es eine andere Möglichkeit, um dieses?
BEARBEITEN:
Hier ist die rentered Tasten:
<td>
<button type="button" id="details" value="(Project path).ModelObjectA" onclick="hello(value);">Details</button>
<button type="button" value="(Project path).ModelObjectA">Edit</button>
<button type="button" value="(Project path).ModelObjectA">Delete</button>
</td>
EDIT 2: ich bin mir nicht sicher, was ich brauche, zu verwenden, die diese Anforderung erfüllen. Ich bin offen für Vorschläge.
<button type="button" id="details" value="@ModelObjectA" onclick="Hallo(Wert);"> - so ist es @ModelObjectA
Könnten Sie erwägen, einen anderen Titel für Ihre Frage, bitte? "MVC 4 Fragen" ist zu ungenau und hilft nicht, anderen ist, wer kann profitieren von den Antworten.
Ich musste es ändern, ist es jetzt besser ?
InformationsquelleAutor Daniel Donev | 2013-08-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Durch den code, den Sie eingefügt das problem ist, dass Sie setzen den Namen der Klasse in der Wert-tag.
Probieren Sie etwas wie dieses:
Können Sie fügen Sie ein Beispiel der HTML code, wenn seine gerendert? Nur der Knopf ist genug.
Ich habe keinen Zugriff auf die Unternehmens-SQL-Server zu Hause ich habe zu simulieren. Aber ich kann es versuchen.
Ich stellte es in der Frage BEARBEITEN:
Für das, was ich sehen kann Sie zuweisen, das Objekt selbst zu "Wert" sind, sollten Sie weisen die Eigenschaft des Objekts. Zum Beispiel: <button type="button" value="@mObjA.Id">Bearbeiten</button>. Möchten Sie dieses Taste, um eine Umleitung zu einer anderen Seite? Wenn das der Fall ist, sollten Sie weisen die Identifikation Attribut auf den Wert und in das onclick-Ereignis calla JS-Funktion oder einer Methode im Controller.
InformationsquelleAutor Martin