2013-12-13 88 views
1

我在要發佈的表單中的foreach循環中有一個單選按鈕。我希望第一個被列出時進行檢查。下面的checked = "checked"沒有幫助。它只適用於有單個單選按鈕的情況。剃鬚刀 - 要在Foreach循環中檢查的單選按鈕

<form action="/logged/hotel" method="post" > 
    @foreach (var item in ViewBag.companies) 
    { 
     <input type="radio" name="graph" value="@item.Value" checked="checked" /> @item.Text<br /> 
    } 
    <input type="submit" value ="LOG IN" /> 
</form> 
+0

你的意思**檢查=「檢查」下面沒有幫助。**,單選按鈕沒有檢查或什麼? – Grundy

+0

沒有人被檢查 – Jude

+0

'ViewBag.companies'不是空的? – Grundy

回答

0

添加名稱屬性,這會將您的單選按鈕組合在一起,並只顯示一個選中狀態。

+0

單選按鈕已具有名稱屬性。談論不同的? – Jude

+0

錯過了,對不起。 –

0

只能檢查一組中的一個單選按鈕。 所有的單選按鈕都在同一組中。 你想要把它們各自在不同的組這麼說

name="@item.Value" 

然而MVC不會喜歡,所以你將不得不做這樣

[HttpPost] 
public ActionResult MyGraphPage(GraphViewModel vm){ 
    foreach(var company in MyDataContext.Companies){ 
     if(Request.Form.AllKeys.Contains(company.Value){ 
      //show the graph 
     } 
    } 
0

的東西,如果你只是想第一個是檢查你可以做到這一點,它不是最優雅的解決方案,但工程。

<form action="/logged/hotel" method="post" > 
@{ 
var isfirst = true; 
} 
    @foreach (var item in ViewBag.companies) 
    { 
     if (isfirst) { 
     isfirst = false; 
     <input type="radio" name="graph" value="@item.Value" checked="checked" />@item.Text<br/> 
     } else { 
     <input type="radio" name="graph" value="@item.Value"/>@item.Text<br/> 
     } 
    } 
    <input type="submit" value ="LOG IN" /> 
</form>