2013-05-30 93 views
0

我正在開發使用C#和SQL Server 2005價值傳遞NULL從一個視圖到另一個ASP MVC 3

我也使用實體框架和準則第一種方法的ASP淨MVC 3應用程序。

在視圖Index,我有一個DropDownList Gamme。我定義它在我看來,選擇的項目,如:

public string SelectedProfile_Ga { get; set; } 

按照這種觀點,我有一個按鈕Appliquer帶我到另一個視圖Application

<input type="button" value="Appliquer" id="appliquer" onclick="window.location = 'ProfileGa/Application'"/> 

在視圖Application,我有一個按鈕提交Appliquer

<input type="submit" value="Appliquer" id="appl" /> 

當我點擊Appliquer,我想保存在我的基地,我的DropDownList Gamme選擇的值。

問題是,當我改變視圖(退出頁索引並打開應用程序)時,此值傳遞NULL

我發現與調試。

控制器動作:

[HttpPost] 
     public ActionResult app(FlowViewModel model) 
     { 

      Famille fam = new Famille(); 

      fam.ID_Gamme = model.SelectedProfile_Ga; 
      db.Familles.Add(fam); 
      db.SaveChanges(); 
      return RedirectToAction("Application"); 

     } 

注:

我沒有在Application忘記:

<% using (Html.BeginForm("app", "ProfileGa")) { %> 

ProfileGa是我的控制器的名稱。

回答

1

對於初學者,您的下拉列表位於Index視圖中,並且正在進行選擇。然後,您將重定向到ProfileGa/Application並將此信息留下。

我會改變這個按鈕:

<input type="button" value="Appliquer" .. etc 

<submit>,幷包裹有下拉的代碼中的其中之一:

using (Html.BeginForm("Application", "ProfileGa")) { 

,並添加Post版本的Application

[HttpPost] 
public ActionResult Application(FlowViewModel model) 
{ 
    // Do whatever 
    return View(model); 
} 

然後當你到達Application查看,它應該仍然具有與Index相同的信息。

要檢查這是行得通的,請在return View(model);處設置斷點並查看模型的內容。

然而,張貼null看法可能意味着,什麼是錯的<% using (Html.BeginForm("app", "ProfileGa")) { %>語句中,因此,如果上面沒有做任何事情,從你的'應用」視後的代碼。

+0

thx爲答案,我改變這樣的按鈕: '' ANI我換我DROPDOWNLIST像這樣: '<%使用(Html.BeginForm( 「應用程序」, 「ProfileGa」)) {%> <%:Html.DropDownListFor(型號=> model.SelectedProfile_Ga,新的SelectList( Model.Profile_GaItems,「ID_Gamme」,「ID_Gamme」),新{@id =「gg」})%> <% } %>' 我也改變了你上面提到的動作,但是當我執行時,按鈕變成了靜態,當我點擊 –

+0

不,我的意思是沒有onclick。 'using'指令告訴它去哪裏。 –

+0

是的,我也試過它沒有onclick和相同的結果,是真的,我對下拉列表 –

相關問題