C# と SQL Server 2005 を使用して ASP .Net MVC 3 アプリケーションを開発しています。
Entity Framework と Code First Method も使用しています。
拠点のテーブル 'Gamme' にレコードを追加したいと考えています。
問題は、テーブルに入力するために使用されるパラメータが異なるビューから取得されることです。
これはモデルGammeです:
namespace MvcApplication2.Models
{
public class Gamme
{
[Key]
[Column(Order = 0)]
[ForeignKey("Profile_Ga")]
public string ID_Gamme { get; set; }
[Key]
[Column(Order = 1)]
[ForeignKey("Poste")]
public string ID_Poste { get; set; }
public int Position { get; set; }
public int Nbr_Passage { get; set; }
public string Last_Posts { get; set; }
public string Next_Posts { get; set; }
public virtual Poste Poste { get; set; }
public virtual Profile_Ga Profile_Ga { get; set; }
}
ID_Gammeは、コードが次のビューインデックスから取得されます。
<div><%:Html.Label("Gamme :")%><%: Html.DropDownList("SelectedProfile_Ga", new SelectList(Model.Profile_GaItems, "ID_Gamme", "ID_Gamme"))%> <input type="button" value="Configurer" id="btnShowGestion" /></div>
他のパラメーターは、部分ビューGestion.ascxから取得されます。
<div><%:Html.Label("Poste :")%><%: Html.DropDownList("SelectedPoste", Model.PostesItems)%><input type="checkbox" name="option1" value="Poste Initial" id= "chkMain" onclick="test();"/>Poste Initial<input type="checkbox" name="option2" value="Poste Final" id= "chkFirst" onclick="test2();"/>Poste Final</div>
<div><%:Html.Label("Nombre de Passage :")%><%: Html.EditorFor(x=>x.YourGammeModel.Nbr_Passage)%></div>
<div><%:Html.Label("Position :")%><%: Html.EditorFor(x=>x.YourGammeModel.Position)%></div>
<div><%:Html.Label("Poste Précédent :")%><%: Html.DropDownList("SelectedPoste", Model.PostesItems)%></div>
<div><%:Html.Label("Poste Suivant :")%><%: Html.DropDownList("SelectedPoste", Model.PostesItems)%></div>
<div><input type="button" value="Enregistrer" id="btnSave" /></div>
コントローラーで関数を作成しようとしましたCreate
が、正しい結果が得られません:
public ActionResult Gestion(FlowViewModel model)
{
model.YourGammeModel = new Gamme();
return PartialView(model);
}
[HttpPost]
public ActionResult Create(Gamme gamme)
{
if (ModelState.IsValid)
{
db.Gammes.Add(gamme);
db.SaveChanges();
return RedirectToAction("Gestion");
}
return View(gamme);
}