指定された質問に対してユーザーが提供した回答のモデルがあります。質問フィールドは動的に回答モデルに渡され、回答ビューで 1 つずつ生成されます。私の質問モデルでは、ユーザーは各質問のページと順序を作成できます。これは答えと質問のモデルです: 質問:
[Key]
public int QuestionId { get; set; }
public string Title { get; set; }
public string Order { get; set; }
public string Page { get; set; }
答え :
[Key]
public int AnswerId { get; set; }
public int QuestionId { get; set; }
public string Answer { get; set; }
そして、これは私が各質問をユーザーに表示し、それらの答えを得る方法です:
@model IEnumerable<A.Models.Question>
@using (Html.BeginForm("Set", "AddAnswer"))
{
@Html.ValidationSummary(true)
@{
int cnt = 0;
foreach (A.Models.Question item in Model)
{
<label>@item.Title</label>
<textarea id="B_@cnt" name="a_@item.QuestionId" data-val="true" data-val-length=""100"><textarea>
cnt++;
}
そして私のコントローラー:
public ViewResult Index()
{
return View(context.AddAnswer.ToList());
}
public ActionResult Set(FormCollection fc)
{
AContext db = new AContext();
var Answer = fc.AllKeys
.Where(k => k.StartsWith("a_"))
.ToDictionary(k => k, k => fc[k]);
.....
}
最後に私の質問:
1-質問情報に基づいてページビューを表示することは可能ですか。Page= "質問を表示する必要があるページ" と order="指定されたページでの質問の順序" のように ? 2-上記の方法で pagedlist を表示するときにポストバックを回避することは可能ですか? たとえば、2 ページに 10 の質問があり、1 ページに回答してから 2 ページ目に進み、最終ページですべての質問を一度にコントローラーに送り返します。さらに、ページを行ったり来たりする機能があり、そこに答えがあります。
ありがとう :)