2012-12-09 93 views
1

我認爲我有其示出了它作爲一個複選框如下:設置複選框Asp.net MVC的價值,Html.CheckBox

<td style="padding:3px"><%= Html.CheckBox("Statistik3", (Boolean)ViewData["Statistik3"], new { @tabindex = "10" })%>  </td> 

控制器:

[AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post)] 
     public ActionResult FormularStatistikKennzeichen(string button, string decision1, FormEntries entries) 
     { 

if (i > 0) 
      { 
       ViewData["Statistik3"] = true; 
      } 
      if (i == 0) 
      { 
       ViewData["Statistik3"] = false; 
      } 
      i = i + 1; 
} 

在第一我可以初始化複選框爲true或false,但在此之後 我不能改變和控制CheckBox中的值?你有任何想法如何

回答

0

你的意思是服務器端或客戶端?如果是服務器端,那麼你需要跟蹤會話中的計數器。您不能使用實例變量,因爲每次發出請求時都會重新創建控制器,這意味着請求始終爲零。除非您想在用戶之間共享狀態,否則您不能使用靜態變量。即使這樣,每次應用程序池回收時都會重新初始化。如果您希望狀態爲持久狀態,那麼您需要將其作爲頁面狀態的一部分進行跟蹤(即,每次使用表單回發當前值)或使用會話狀態。

如果您指的是客戶端,您應該意識到,複選框助手會輸出兩個輸入,一個複選框,一個隱藏值,同名,值爲false。這是爲了確保在表單的帖子後複選框有一個值映射到您的模型/參數中的(必需的)布爾值。當使用JavaScript更新客戶端時,您應該注意只修改複選框的值而不是隱藏字段,以獲得一致的結果。

+0

感謝您的回答......它是客戶端......這只是ViewData [「Statistik3」]的值將從DB ViewData [「Statistik3」] = db.getStatistkValue()設置的示例。 ;我怎樣才能修改複選框的值? –

+0

@HaifaDerouiche使用jQuery它會像'$('[name =「Statistik3」] [type =「checkbox」''。prop(true)'或'false')。 – tvanfosson

+0

我必須使用jQuery嗎?是否有另一種方式,如何在傳統HTML中使用」/>或者在這個方向 –