У меня есть эта модель:
public class QuestionSimple
{
public string Body { get; set; }
public bool IsSingleChoice { get; set; }
public List<String> Answers { get; set; }
public string Difficutly { get; set; }
public string Explanation { get; set; }
}
Который я пытаюсь связать, используя эту строку в Global.asax.cs
ModelBinders.Binders.Add(typeof(QuestionSimple), new AddQuestionSimpleBinder());
... с этим связующим веществом
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
// Get the raw attempted value from the value provider
string key = bindingContext.ModelName;
ValueProviderResult val = bindingContext.ValueProvider.GetValue(key);
//val is ALWAYS NULL
return null;
}
Но val всегда нулевой.
Вот представление, которое должно возвращать (и фактически возвращает) список ответов, когда я не использую мое связующее.
@using (Html.BeginForm("AddQuestionSimple", "Topic", FormMethod.Post, new { @id = "mainForm" }))
{
<input type="text" name="questionToBeAdded.Answers[0]" value="ff" />
<input type="text" name="questionToBeAdded.Answers[1]" value="ddds" />
<input type="text" name="questionToBeAdded.Answers[2]" value="ff" />
<input type="text" name="questionToBeAdded.Answers[3]" value="ddds" />
<input type="text" name="questionToBeAdded.Answers[4]" value="ff" />
<input type="text" name="questionToBeAdded.Answers[5]" value="ddds" />
<input value="Add question" type="submit" style="position: static; width: 10em; height: 3em;
font-size: 1em;" />
}
Связыватель модели по умолчанию получает мои значения, когда я их публикую, но мой val
всегда равен null
.
Почему это так?
(следует упомянуть, что это попытка решить эту большую проблему).
Редактировать 1:
Вот предполагаемое связанное действие
[HttpPost]
public ActionResult AddQuestionSimple(PMP.WebUI.Models.UserInteractionEntities.UserInput.QuestionSimple questionToBeAdded)
{
return View("AddQuestion");
}
Спасибо.