私はMVC3を初めて使っていますが、これまでのところ私は自分のコードにぴったり合っています。フォームにモデルに追加してから追加してフォームを再表示します
ここでは、簡単なフォームを作成して、ユーザーが従業員の名前を表すテキスト文字列を入力できるようにしたいと考えています。私はこのフォームを提出して、私のモデルに一種のリストとして保存したいと思います。フォームを再表示し、for-eachループですでに追加されている名前を書き出す必要があります。私が終わったら、私のデータベースにこの情報を保存する必要があります。
私が理解できないことは、私がデータベースにプッシュするまで、この一時的な情報を保存する方法です。私が提出するたびに押す、私はすることができますが、これは頭痛の多くを引き起こしている。
皆さんは私が何をしようとしているのかを見て、それに素晴らしい解決策を持っていることを願っています。 :)
これは私がやろうとしていたものの簡易版である:
モデル
public class OrderModel
{
public virtual ICollection<Employees> EmployeesList { get; set; }
public virtual Employees Employees { get; set; }
}
public class Employees
{
[Key]
public int ID { get; set; }
public string Name { get; set; }
}
ビュー
@model OrderModel
@{
if (Model.EmployeesList != null)
{
foreach (var c in Model.EmployeesList)
{
@c.Name<br />
}
}
}
@using(Html.BeginForm())
{
@Html.TextBoxFor(m => m.Employees.Name)
<input type="submit" value="Add"/>
}
コントローラ
[HttpPost]
public ActionResult Index(OrderModel model)
{
model.EmployeesList.Add(model.Employees);
// This line gives me the error: "System.NullReferenceException: Object reference not set to an instance of an object."
return View(model);
}
ありがとう!このアプローチは完全に機能しました。 – holaq