我有这样的cshtml页面:
<div class="form-group">
@Html.LabelFor(m => m.QuestionnaireName, new { @class = "col-md-2 control-label" })
@Html.DropDownListFor(m => m.QuestionnaireName, Model.Questionnaires, new { @id = "ddlQuestionnaires", @class = "form-control" })
@Html.Label("Questions list:", new { @class = "col-md-2 control-label" })
// here: how to check if any dropdownlistfor value is selected?
</div>
就像我在上面的评论中所说的那样。我想检查是否选择了DropDownListFor的值,如果是,则为所选问卷的元素构建dynamicaly(表或列表)。
假设Questionnaire.name是唯一ID,问卷包含列表问题。
这是我的模特:
public class FillQuestionnaireModel
{
[Required]
[DataType(DataType.Text)]
[Display(Name = "Select questionnaire")]
public string QuestionnaireName { get; set; }
public SelectList Questionnaires { get; set; }
}
和我的控制器操作:
public ActionResult Fill()
{
QuestionnaireServiceReference.QuestionnaireServiceClient client = new QuestionnaireServiceReference.QuestionnaireServiceClient();
FillQuestionnaireModel model = new FillQuestionnaireModel();
List<QuestionnaireServiceReference.Questionnaire> Questionnaires = client.GetAllQuestionnaires().ToList();
Questionnaires.Insert(0, new QuestionnaireServiceReference.Questionnaire() { questionnaire_id = 0, name = "--Select--" });
model.Questionnaires = new SelectList(Questionnaires, "name", "name");
return View(model);
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Fill(FillQuestionnaireModel model)
{
if (!ModelState.IsValid)
{
string SelectedValue = model.QuestionnaireName;
return View(model);
}
else
{
QuestionnaireServiceReference.QuestionnaireServiceClient client = new QuestionnaireServiceReference.QuestionnaireServiceClient();
List<QuestionnaireServiceReference.Questionnaire> Questionnaires = client.GetAllQuestionnaires().ToList();
Questionnaires.Insert(0, new QuestionnaireServiceReference.Questionnaire() { questionnaire_id = 0, name = "--Select--" });
model.Questionnaires = new SelectList(Questionnaires, "name", "name");
}
return View(model);
}