我无法通过post方法获取控制器中的模型数据,请帮我解决下面的代码。
model:
public class CardQuestionData
{
public int cardId { get; set; }
public string cardNotation { get; set; }
public string cardDesc { get; set; }
public List<SectionQuestionData> sectionData { get; set; }
}
public class SectionQuestionData
{
public int sectionId { get; set; }
public string sectionDesc { get; set; }
public int sectionSerNo { get; set; }
public List<QuestionData> questionData1 { get; set; }
}
public class QuestionData
{
public int questionId { get; set; }
public string questionDesc { get; set; }
public int questionSerNo { get; set; }
public int selectAns { get; set; }
public IEnumerable<ControlData> controlData { get; set; }
}
public class ControlData
{
public string controlType { get; set; }
public string controlAnswMap { get; set; }
public int controlQuesMap { get; set; }
public int controlId { get; set; }
public string controlDesc { get; set; }
public int controlMinValue { get; set; }
public int controlMaxValue { get; set; }
public int controlSerNo { get; set; }
public int controlValue { get; set; }
public string versionNo { get; set; }
public string attr1 { get; set; }
public string attr2 { get; set; }
public string attr3 { get; set; }
public string attr4 { get; set; }
public string attr5 { get; set; }
public string attr6 { get; set; }
public string attr7 { get; set; }
public string attr8 { get; set; }
public string attr9 { get; set; }
public string attr10 { get; set; }
public string answer { get; set; }
public string statusFalg { get; set; }
public DateTime initiatedDate { get; set; }
public DateTime updateDate { get; set; }
public DateTime submitDate { get; set; }
}
View:
@model List<MSIL.Service.FeedbackCard.Models.CardQuestionData>
@using(Html.BeginForm("CardQuestions", "CardData", FormMethod.Post))
{
<div id="example" class="form-group">
<section class="well">
<div>
@{ foreach (var xx in Model)
{
@Html.HiddenFor(model => xx.cardId)
for (int i = 0; i < xx.sectionData.Count(); i++)
{
@Html.HiddenFor(model => xx.sectionData[i].sectionId)
@Html.DisplayFor(model => xx.sectionData[i].sectionDesc)
for (int j = 0; j < xx.sectionData[i].questionData1.Count; j++)
{
@Html.HiddenFor(model => xx.sectionData[i].questionData1[j].questionId)
@Html.DisplayFor(model => xx.sectionData[i].questionData1[j].questionId)
@Html.DisplayFor(model => xx.sectionData[i].questionData1[j].questionDesc)
foreach (var ans in xx.sectionData[i].questionData1[j].controlData)
{
<div>
@Html.HiddenFor(model => ans.controlId)
@Html.RadioButtonFor(model => xx.sectionData[i].questionData1[j].selectAns, ans.controlId, new { id = ans.controlId })
</div>
}
}
}
}
}
<div class="clearfix"></div>
<div class="buttons-wrap">
<button class="k-button k-state-default" type="submit" value="Previous" name="butCardData">Previous</button>
<button class="k-button k-state-default" type="submit" value="Next" name="butCardData">Next</button>
</div>
</div>
</section>
</div>
}
Controller :
public ActionResult CardQuestions(CardQuestionData objQuestionsList, string butCardData, FormCollection frmx)
{
}
答案 0 :(得分:0)
您正在视图中发送一个对象列表,但在发布时您希望有一个对象:
@model List<MSIL.Service.FeedbackCard.Models.CardQuestionData>
public ActionResult CardQuestions(CardQuestionData objQuestionsList, string butCardData, FormCollection frmx)
{
}
如果您想提交一份清单,我无法理解您需要提交的内容,请使用行动结果列表。
答案 1 :(得分:0)
到目前为止,我看了你的代码,看起来没问题。我想你忘了把属性放在那个
请将[HttpPost]属性放在控制器方法上。