我一直在尋找SO和谷歌一個多星期了,仍然無法找到工作答案。希望有人能幫助我。查看不傳遞數據到控制器
我正在與asp.net(實體框架+剃刀)項目工作,我想'添加兩個模型的意見。它使用editorFor()完美展示。現在問題是有些部分沒有將信息傳遞給控制器。
在這種情況下,每個練習都得到了一些答案。這是我的練習模式:
Table("Exercise")]
public class ExerciseModel
{
[Key]
public int ExerciseId { get; set; }
[Required]
public string Question { get; set; }
[Required]
public List<AnswerModel> Answers { get; set; }
而且這個answermodel:
[Table("Answer")]
public class AnswerModel
{
[Key]
public int AnswerId { get; set; }
[Required]
public string Answer { get; set; }
}
的觀點存在了兩個部分,演習部分(工作一個),答案的一部分。我想在exercisemodel的列表中添加更多答案。我嘗試過不同的方式。編輯器模板,部分視圖等
這是觀點: 您可以創建一個新問題並使用Jquery隨時添加答案。我想創建的是,我可以在exercisemodel中將答案發布到該列表中。
@using (Html.BeginForm("CreateQuestion", "Admin", FormMethod.Post))
{
@Html.ValidationSummary(true)
//will be changed
@Html.Partial("_PartialCreateExercise")
//this shows the answers form
<div style="display: none;" id="new">
<div class="editor-field">
@Html.EditorFor(m => m.Answers);
</div>
</div>
<p>
<input name="command" type="button" id="add" value="add new answers" />
</p>
<p>
<input name="command" type="submit" value="Create" />
</p>
}
這可以工作,但是當我提交頁面時,exerciseModel中的List(類型AnswerModel)仍然是空的。最後的答案編輯模板:
@model Academy.Models.AnswerModel
@{
Layout = null;
}
<h2>Answer</h2>
<p>
@Html.LabelFor(model => model.Answer)
@Html.EditorFor(model => model.Answer)
</p>
The jQuery:
$(document).ready(function() {
$("#add").click(function() {
$('#add').after($("#new").html());
$('#new').css("Display", "block");
});
});
它並沒有做太多,並在那裏很多嘗試,所以它變得凌亂。但是在使用調試模式時,ExerciseModel中的List是空的,也是AnswerModel。
所以問題是,發佈表單時,ExerciseModel中的List仍然是空的。由於某種原因,我無法通過編輯器模板在exercisemodel中訪問List。 (控制器不包括,因爲它現在不做很多,列表總是空的)
這一直讓我忙了一個禮拜,希望有人能幫助我嗎?
你可以發佈你的控制器嗎? –
我添加了應該做處理的控制器方法。這有點亂,對此很抱歉。試了很多。但是當使用調試器時,ExerciseModel中的List就像AnswerModel本身一樣是空的。正如我所說,我上週嘗試了很多。 –