ASP.Net MVC中的动态问卷调查,当httppost模型值为空时

时间:2016-11-29 18:43:55

标签: asp.net-mvc

我想开发一些民意调查类型的mvc应用程序..到目前为止我创建了我的视图模型

public class SurveyCommonViewModel
{
    public List<SurveyQuestionViewModel> Questions { get; set; }
    public List<QuestionOption> Options { get; set; }
}

public class SurveyQuestionViewModel
{
    public int QuestionId { get; set; }
    public String QuestionText{get;set;}
    public int QuestionResultId { get; set; }
}

public class QuestionOption
{
    public int QuestionOptionId { get; set; }
    public string FriendlyName { get; set; }
}

现在我很困惑如何设计视图?所以在接下来的上一个问题点击我得到更新的模型与提取的问题和可用的选项。到目前为止我开发了但是我在httppost上获得了模型属性null视图模型。

我的控制器赞:

public ActionResult Poll()
{
    SurveyCommonViewModel retVal = GetMockDataForSurvey();
    return View(retVal);
}

[HttpPost]
public ActionResult Poll(SurveyCommonViewModel scm)
{
    return View(scm);
}

 private SurveyCommonViewModel GetMockDataForSurvey()
    {
     SurveyCommonViewModel retVal = new SurveyCommonViewModel();
    retVal.Options = new List<QuestionOption>();
        retVal.Options.Add(new QuestionOption()
        {
            FriendlyName = "A",
            QuestionOptionId = 500
        });

        retVal.Options.Add(new QuestionOption()
        {
            FriendlyName = "B",
            QuestionOptionId = 501
        });
        retVal.Options.Add(new QuestionOption()
        {
            FriendlyName = "C",
            QuestionOptionId = 502
        });

       List<SurveyQuestionViewModel> questions = new List<SurveyQuestionViewModel>()
        {
            new SurveyQuestionViewModel()
            {
                QuestionId = 1,
                QuestionText = "Question 1 ?"
            },
            new SurveyQuestionViewModel()
            {
                QuestionId = 2,
                QuestionText = "Question 2 ?"
            },
            new SurveyQuestionViewModel()
            {
                QuestionId = 3,
                QuestionText = "Question 3 ?"
            },
            new SurveyQuestionViewModel()
            {
                QuestionId = 4,
                QuestionText = "Question 4 ?"
            }
      };
     retVal.Questions = questions;
    return retVal;
    }

我的剃刀观点如下:

@using (Html.BeginForm())
{    
<label id="lblQuestion">@Model.Questions.Where(m => m.QuestionId== 1).FirstOrDefault().QuestionText.ToString()</label>
     @foreach (var option in Model.Options)
        {

                @Html.RadioButton("answer", @option.FriendlyName) @option.FriendlyName
  }
 <input type="submit" name="Next" value="Next"/>
  }

我希望所有这四个问题一个接一个...在下一个按钮点击我想将这个选定的选项存储到我的视图模型...并向最终用户显示下一个问题...在第四个问题上保存按钮是那里有更新视图模型..我希望你明白我真正想要的.....我不清楚我怎么能创建我的剃刀视图....那是什么实际上想要帮助它像你这样的人...请给我一些想法如何创建或设计我的剃刀视图....我的视图模型已经完成...但剃刀视图我无法设计...我是MVC框架的初学者

这是如何运作的?

0 个答案:

没有答案