Ich habe einen Textfeldeingang und einige Optionsfelder. Zum Beispiel sieht mein Textbox-Eingabe-HTML so aus:
<input type="text" name="IP" id="IP" />
Sobald der Benutzer auf einer Webseite auf eine Schaltfläche klickt, möchte ich Daten an meinen Controller übergeben:
<input type="button" name="Add" value="@Resource.ButtonTitleAdd" onclick="location.href='@Url.Action("Add", "Configure", new { ipValue =@[ValueOfTextBox], TypeId = 1 })'"/>
Vielleicht ist es trivial, aber mein Problem ist, dass ich nicht weiß, wie ich den Textfeldwert abrufen und an den Controller weiterleiten kann. Wie kann ich den Textfeldwert lesen und an den Controller weiterleiten ipValue=@[ValueOfTextBox]
?
quelle
(m => m.FirstName)
und die Ansicht und der Controller haben@Html.TextBox("name")
. Muss der "Name" der Html.TextBox mit der UserModel- Variablen übereinstimmen ? Wenn nicht, wie werden diese Seitenwerte der richtigen Objekteigenschaft zugeordnet?Sie können jQuery verwenden:
<input type="text" name="IP" id="IP" value=""/> @Html.ActionLink(@Resource.ButtonTitleAdd, "Add", "Configure", new { ipValue ="xxx", TypeId = "1" }, new {@class = "link"}) <script> $(function () { $('.link').click(function () { var ipvalue = $("#IP").val(); this.href = this.href.replace("xxx", ipvalue); }); }); </script>
quelle
Versuche dies.
Aussicht:
@using (Html.BeginForm("Login", "Accounts", FormMethod.Post)) { <input type="text" name="IP" id="IP" /> <input type="text" name="Name" id="Name" /> <input type="submit" value="Login" /> }
Regler:
[HttpPost] public ActionResult Login(string IP, string Name) { string s1=IP;// string s2=Name;// }
Wenn Sie eine Modellklasse verwenden können
[HttpPost] public ActionResult Login(ModelClassName obj) { string s1=obj.IP;// string s2=obj.Name;// }
quelle
Ein anderer Weg mit der Ajax-Methode:
Aussicht:
@Html.TextBox("txtValue", null, new { placeholder = "Input value" }) <input type="button" value="Start" id="btnStart" /> <script> $(function () { $('#btnStart').unbind('click'); $('#btnStart').on('click', function () { $.ajax({ url: "/yourControllerName/yourMethod", type: 'POST', contentType: "application/json; charset=utf-8", dataType: 'json', data: JSON.stringify({ txtValue: $("#txtValue").val() }), async: false }); }); }); </script>
Regler:
[HttpPost] public EmptyResult YourMethod(string txtValue) { // do what you want with txtValue ... }
quelle
Sie können es so einfach machen:
Erstens: Zum Beispiel in Modellen haben Sie User.cs mit dieser Implementierung
public class User { public string username { get; set; } public string age { get; set; } }
Wir übergeben das leere Modell an den Benutzer - Dieses Modell wird mit Benutzerdaten gefüllt, wenn er das Formular wie folgt sendet
public ActionResult Add() { var model = new User(); return View(model); }
Wenn Sie die Ansicht nach leerem Benutzer als Modell zurückgeben, wird sie der Struktur des von Ihnen implementierten Formulars zugeordnet. Wir haben dies auf HTML-Seite:
@model MyApp.Models.Student @using (Html.BeginForm()) { @Html.AntiForgeryToken() <div class="form-horizontal"> <h4>Student</h4> <hr /> @Html.ValidationSummary(true, "", new { @class = "text-danger" }) <div class="form-group"> @Html.LabelFor(model => model.username, htmlAttributes: new { @class = "control-label col-md-2" }) <div class="col-md-10"> @Html.EditorFor(model => model.username, new { htmlAttributes = new { @class = "form- control" } }) @Html.ValidationMessageFor(model => model.userame, "", new { @class = "text-danger" }) </div> </div> <div class="form-group"> @Html.LabelFor(model => model.age, htmlAttributes: new { @class = "control-label col-md-2" }) <div class="col-md-10"> @Html.EditorFor(model => model.age, new { htmlAttributes = new { @class = "form-control" } }) @Html.ValidationMessageFor(model => model.age, "", new { @class = "text-danger" }) </div> </div> <div class="form-group"> <div class="col-md-offset-2 col-md-10"> <input type="submit" value="Create" class="btn btn-default" /> </div> </div> </div> }
Wenn Sie also auf "Senden" klicken, werden Sie es so verwenden
[HttpPost] public ActionResult Add(User user) { // now user.username has the value that user entered on form }
quelle