MVC 4 de la Liaison de Modèle à bouton Radio liste sur Soumettre
Mon projet MVC 4 avec jquery mobile. Je suis à essayer de comprendre comment remplir mon modèle avec les données sur les présenter avec les documents suivants:
-
À partir d'une valeur cachée qui sera rempli à la demande get
-
Coché le bouton Radio de la valeur à partir d'une liste sur le point de vue
Voici mon Modèle:
public class ResultsModel
{
[Display(Name = "PatientFirstName")]
public string PatientFirstName { get; set; }
[Display(Name = "PatientLastName")]
public string PatientLastName { get; set; }
[Display(Name = "PatientMI")]
public string PatientMI { get; set; }
public List<QuestionModel> QuestionList = new List<QuestionModel>();
}
public class QuestionModel
{
public string Question { get; set; }
public int QuestionID { get; set; }
public int AnswerID { get; set; }
}
Il a une collection de questions qui est rempli avec des données sur la requête get. Voici le code du contrôleur:
public class ResultsController : Controller
{
//
//GET: /Results/
public ActionResult Index()
{
if (Request.IsAuthenticated)
{
ResultsModel resultsModel = new ResultsModel();
//Get data from webservice
myWebService.TestForm inrform;
var service = new myWebService.myService();
testform = service.TestForm(id);
if (testform != null)
{
//Render the data into results data model
int count = 1;
string text = string.Empty;
foreach (myWebService.Question questiontext in testform.QuestionList)
{
QuestionModel newquestion = new QuestionModel();
text = "Question " + count + ": " + questiontext.text;
if (questiontext.text != null)
{
newquestion.Question = text;
newquestion.QuestionID = questiontext.id;
}
resultsModel.QuestionList.Add(newquestion);
count += 1;
}
}
else
{
//Error
}
return View(resultsModel);
}
//Error
return View();
}
[AllowAnonymous]
[HttpPost]
public ActionResult Index(ResultsModel model,FormCollection fc)
{
if (fc["Cancel"] != null)
{
return RedirectToAction("Index", "Home");
}
if (ModelState.IsValid)
{
dans le post d'action, le modèle.QuestionList est toujours vide. Voici mon point de Vue:
@model Models.ResultsModel
@{
ViewBag.Title = Resources.Account.Results.Title;
}
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<li data-role="fieldcontain">
@Html.LabelFor(m => m.INRTestDate)
@Html.EditorFor(m => m.INRTestDate)
@Html.ValidationMessageFor(model => model.INRTestDate)
</li>
<li data-role="fieldcontain">
@Html.LabelFor(m => m.INRValue)
@Html.TextBoxFor(m => m.INRValue)
</li>
<li>
@for (int i = 0; i < Model.QuestionList.Count; i++)
{
<div data-role="label" name="question" >
@Model.QuestionList[i].Question</div>
@Html.HiddenFor(m => m.QuestionList[i].QuestionID)
<div data-role="fieldcontain">
<fieldset data-role="controlgroup" data-type="horizontal" data-role="fieldcontain" >
<input id="capture_type_yes" name="answer_type" type="radio" data-theme="c" value="1" />
<label for="capture_type_yes" >
Yes</label>
<input id="capture_type_no" name="answer_type" type="radio" data-theme="c" value="0" />
<label for="capture_type_no">
No</label>
<input id="capture_type_na" name="answer_type" type="radio" data-theme="c" value="2" />
<label for="capture_type_na">
Not Applicable</label>
</fieldset>
</div> }
<label for="textarea-a">
Comments</label>
<textarea name="textarea" id="textarea-a"> </textarea>
<fieldset class="ui-grid-a">
<div class="ui-block-a">
<button type="submit" name="Submit" data-theme="c">Submit</button></div>
<div class="ui-block-b">
<button type="submit" name="Cancel" data-theme="b" class="cancel">Cancel</button></div>
</fieldset>
</li>
Dans la pour chaque code ci-dessus, mon modèle.Questionlist collection n'est pas mis à jour. J'ai aussi besoin de savoir comment je peux attacher le bouton radio de la souris (Oui,Non ou sans objet) pour les AnswerID propriété de mon modèle.Questionlist collection
- Découvrez ce post blog.stevensanderson.com/2010/01/28/... sur la liaison à des modèles avec des listes.
Vous devez vous connecter pour publier un commentaire.
Il en fait a fini par être cette ligne:
J'avais besoin de les get/set pour initialiser
S'il vous plaît Pouvez-Vous Ajouter le Code après
Ce serait un bon après, si vous terminez votre code.
MVC5 Lier une LISTE de Bouton Radio avec Rasoir
Créer une classe RadioList n'importe où dans le programme
Dans votre Contrôleur
Dans le Rasoir (vue de remplacer le modèle.Sexe par la valeur de votre base de données/modèle de champ