Définir la zone de texte valeur à l'aide du contrôleur ASP.NET MVC 4
Est-il possible de définir la valeur de la zone de texte à l'aide de la manette? J'ai le formulaire ci-dessous mon Vue:
@Html.TextBoxFor(Models => Models.techNo, new { @class="form-control maintain-text",
placeholder="Technician No..."})
<button type="submit" id="search" name="SubmitButton" value="search" class="btn btn-default">Search</button>
<td>First Name :</td>
<td>@Html.TextBoxFor(Models => Models.firstName, new { @class = "form-control", style = "width:380px;", disabled = "disabled" })</td>
<td>Last Name :</td>
<td>@Html.TextBoxFor(Models => Models.lastName, new { @class = "form-control", style = "width:380px;", disabled = "disabled" })</td>
Modèle:
public string techNo { get; set; }
public string firstName { get; set; }
public string lastName { get; set; }
Contrôleur:
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult ProcessTech(string SubmitButton)
{
TechnicianFacade _oTechFacade = new TechnicianFacade();
Technician _oTechnician = new Technician();
string fName = Request.Form["firstName"].ToString().ToUpper();
string lName = Request.Form["lastName"].ToString().ToUpper();
switch (SubmitButton)
{
case "save": //add new technician
{
}
break;
case "update": //update technician details
{
}
break;
case "search": //search technician
{
try {
string id = Request.Form["techNo"].ToString().ToUpper();
if (isValid(id, "technician") == false) //search the id from the database
{
//do nothing
}
else //if id is valid
{
var tech = _oTechFacade.getTechnicians(id, _oAppSetting.ConnectionString)[0]; //data from the database
string fNameStr = tech.GetType().GetProperty("FIRSTNAME").GetValue(tech, null).ToString();
string lNameStr = tech.GetType().GetProperty("LASTNAME").GetValue(tech, null).ToString();
//When the the ID is found,
//these are the values of the firstName & lastName that I want to set to the View
//Is it possible to set the values of the textboxes from here?
}
}
catch (Exception ex) { throw ex; }
}
break;
case "delete":
{
}
break;
}
return View("Index");
}
En principe, après la recherche de l'ID(en supposant que la validité de son) j'ai envie de prendre le nom & prénom de données à partir de la base de données et l'afficher à la Vue de l'actualisation ou la suppression. J'ai essayé ViewBag, ViewData, et TempData mais tous ne sont pas de travail pour moi.
EDIT:
@model Maintenance_.Models.IndexModel
@{
ViewBag.Title = "Technician";
}
<div id="page-wrapper">
<div class = "row">
<div class = "col-lg-12">
<h1 class= "page-header"> Technician </h1>
</div>
</div>
....
- Vous avez les réponses à cette question dans stackoverflow stackoverflow.com/questions/9225039/...
Vous devez vous connecter pour publier un commentaire.
Cette ligne:
n'est pas le passage d'un modèle à la vue Index.
Vous devez créer une instance de votre point de vue, et de définir ses propriétés:
Maintenant vous pouvez le faire:
Que je vois votre code, vous utilisez explicitement tapé vue et en utilisant la même vue pour insérer et mettre à jour. Et dans ce cas, vous devez retourner le modèle de votre point de vue comme ça:
}
@Brendan Green réponse est correcte, vous avez besoin de passer du modèle de la vue Aussi puis vous pouvez définir la valeur de zone de texte à l'aide d'ajouter une nouvelle propriété pour Helper Html.
Remarque ici de la valeur définie par @valeur de la propriété
Mise à jour:
Modifier < button > élément < input type="submit" > également modifier l'id de SubmitButton et le Nom aussi SubmitButton (id et le Nom des valeurs mêmes qui est bon), puis essayez de nouveau semble problème avec votre instruction switch. Le débogage, puis vous pouvez voir ce qu'il se passe.
Aussi passer du modèle à vue et le Nom de la Vue doit être de l'Index puis afficher correctement l'appel.