2015-07-04 82 views
0

如果使用formCollection[],則string返回checkbox,結果爲:"true,false"。你如何解析這個?是Replace()唯一的選擇?如何在ASP.NET MVC中正確獲取複選框值?

或者我應該把所有參數放在我的"action method"(在控制器中)?像這樣:

public ActionResult Edit(string checkbox) 

什麼是正確的方法?

更新:任何人誰可能會遇到這樣的(再次感謝@meda)

如果您有一個強類型來看,是這樣的:

@model MyNamespace.Models.Car 

那麼你就可以訪問整個模型在控制器這樣的:

public ActionResult Edit(Car model) 

,或者如果你沒有那麼多「投入」在你的表格,那麼你可以使用在你的控制器的操作方法作爲參數的HTML輸入和參數的名稱將被解析爲數據類型要自動:

public ActionResult Edit(bool checkbox) 
+1

此鏈接可以幫助你:http://stackoverflow.com/questions/5936048/why-html-checkboxvisible-returns-true-false-in-asp-net-mvc -2 –

+0

@ImranBalouch我搜索了stackoverflow,找到了一些好的話題,但還沒找到你提供的。另外我不知道action方法參數可以是這樣的布爾:'公共ActionResult編輯(布爾複選框)'。我用了一個字符串然後解析它。謝謝。 :) –

回答

2

正確的方法是不使用formCollection和模型對象傳遞給控制器行動。

模型屬性不是字符串,而是boolean,因爲它只能被選中或不選中。

例如:

public bool MyCheckBox1 { get; set; } 
+0

我不確定我是否在這裏關注你。你能提供一個例子來傳遞一個模型對象到你的控制器動作嗎? –

+1

我的意思是不使用'formCollection []'但是你的模型,併爲值發佈它將是一個布爾不是一個字符串這就是所有 – meda

+0

你的意思是這樣的'公衆的ActionResult編輯(布爾複選框)'? –

相關問題