ASP.NET MVC obtenir une valeur d’entrée de zone de texte

J’ai une entrée textbox et des boutons radio. Par exemple, mon entrée de zone de texte HTML ressemble à ceci:

 

Une fois que l’utilisateur clique sur un bouton sur une page Web, je souhaite transmettre des données à mon contrôleur:

  

Peut-être que c’est sortingvial mais mon problème est que je ne sais pas comment obtenir une valeur textbox et la transmettre au contrôleur. Comment puis-je lire la valeur de la zone de texte et la transmettre au contrôleur via ipValue=@[ValueOfTextBox] ?

Un formulaire d’abonnement ASP.NET MVC simple avec une zone de texte de courrier électronique serait implémenté comme ceci:

Modèle

Les données du formulaire sont associées à ce modèle

 public class SubscribeModel { [Required] public ssortingng Email { get; set; } } 

Vue

Le nom de la vue doit correspondre au nom de la méthode du contrôleur.

 @model App.Models.SubscribeModel @using (Html.BeginForm("Subscribe", "Home", FormMethod.Post)) { @Html.TextBoxFor(model => model.Email) @Html.ValidationMessageFor(model => model.Email)  } 

Manette

Le contrôleur est responsable du traitement des demandes et du retour de la vue de réponse appropriée.

 public class HomeController : Controller { public ActionResult Index() { return View(); } [HttpPost] public ActionResult Subscribe(SubscribeModel model) { if (ModelState.IsValid) { //TODO: SubscribeUser(model.Email); } return View("Index", model); } } 

Voici la structure de mon projet. Veuillez noter que le dossier des vues “Accueil” correspond au nom de HomeController.

Structure ASP.NET MVC

Vous pouvez utiliser jQuery:

  @Html.ActionLink(@Resource.ButtonTitleAdd, "Add", "Configure", new { ipValue ="xxx", TypeId = "1" }, new {@class = "link"})  

Essaye ça.

Vue:

 @using (Html.BeginForm("Login", "Accounts", FormMethod.Post)) {    } 

Manette:

 [HttpPost] public ActionResult Login(ssortingng IP, ssortingng Name) { ssortingng s1=IP;// ssortingng s2=Name;// } 

Si vous pouvez utiliser la classe de modèle

 [HttpPost] public ActionResult Login(ModelClassName obj) { ssortingng s1=obj.IP;// ssortingng s2=obj.Name;// } 

Une autre façon d’utiliser la méthode ajax:

Vue:

 @Html.TextBox("txtValue", null, new { placeholder = "Input value" })   

Manette:

 [HttpPost] public EmptyResult YourMethod(ssortingng txtValue) { // do what you want with txtValue ... } 

vous pouvez le faire si simple:

Tout d’abord: par exemple dans les modèles, vous avez User.cs avec cette implémentation

 public class User { public ssortingng username { get; set; } public ssortingng age { get; set; } } 

Nous passons le modèle vide à l’utilisateur – Ce modèle serait rempli avec les données de l’utilisateur lorsqu’il soumet le formulaire comme celui-ci

 public ActionResult Add() { var model = new User(); return View(model); } 

Lorsque vous renvoyez le modèle Afficher par utilisateur vide, il correspond à la structure du formulaire que vous avez implémenté. Nous avons ceci du côté HTML:

 @model MyApp.Models.Student @using (Html.BeginForm()) { @Html.AntiForgeryToken() 

Student


@Html.ValidationSummary(true, "", new { @class = "text-danger" })
@Html.LabelFor(model => model.username, htmlAtsortingbutes: new { @class = "control-label col-md-2" })
@Html.EditorFor(model => model.username, new { htmlAtsortingbutes = new { @class = "form- control" } }) @Html.ValidationMessageFor(model => model.userame, "", new { @class = "text-danger" })
@Html.LabelFor(model => model.age, htmlAtsortingbutes: new { @class = "control-label col-md-2" })
@Html.EditorFor(model => model.age, new { htmlAtsortingbutes = new { @class = "form-control" } }) @Html.ValidationMessageFor(model => model.age, "", new { @class = "text-danger" })
}

Donc, sur le bouton soumettre, vous l’utiliserez comme ça

 [HttpPost] public ActionResult Add(User user) { // now user.username has the value that user entered on form }