2016-07-05 14 views
1

Ich möchte den Wert meiner @HtmlTextBox("UserName") meiner Methode in meinem Controller aus meiner Sicht über meine @html.ActionLink übergeben. Hier ist was ich versucht habe:Wie erhalte ich den Wert meiner Textbox in meinem Aktionslink?

@Html.TextBox("UserName") 
@foreach (string s in ViewBag.RolesForThisUser) 
{ 
    <tr> 
     <td> 
      @s 
     </td> 
     <td> 
      @Html.ActionLink("Remove Role", "DeleteRoleForUser", 
      new{controller = "Role", 
      [email protected]("UserName").ToString(), [email protected]}) 
     </td> 
    </tr> 
} 

Wo dies außerhalb des Geltungsbereichs ist, scheint es ein bisschen schwierig. Dies funktioniert gut mit der RoleName-Variablen, da sie innerhalb des Gültigkeitsbereichs liegt. Gibt es keine Möglichkeit, den Wert mit den gegebenen Variablen zu erhalten?

Resolution eine que von Scartag Unter kam ich mit diesem nach oben

$(function() { 
    $("#lnk") 
     .click(function() { 
      console.log("my message"); 
      var userName = $("#UserName").val(); 
      this.href = this.href + '&UserName=' + userName; 
     }); 
}); 

Antwort

1

abzurufen Ihr Ansatz ist falsch.

Jedes Mal, wenn Sie das @Html.TextBox("UserName") Markup sehen, sagen Sie der Laufzeit, ein Eingabefeld mit ID und Namen "Benutzername" zu erstellen ... das ist alles.

Es wird nicht in einen Wert übersetzt.

Sie könnten jedoch Javascript verwenden, um eine onclick zu der actionlink hinzuzufügen, die den Wert des Textfelds anhängen würde, bevor zu der gewünschten URL navigiert wird.

0

Ein Weg, es ist die Überprüfung auf Formcollection zu tun, die Sie

[HttpPost] 
public ActionResult SubmitAction(FormCollection collection) 
{ 
    // Get Post Params Here 
    string var1 = collection["UserName"]; 
} 

prüfen Mitteilung verfassen Wert, den Sie verwenden der richtige ID-Name, um den Wert

Verwandte Themen