2012-04-21 38 views
0

我想設置基於查詢結果的單選按鈕,例如在我的案例中,它是一份醫療問卷。醫療問卷調查結果持續了很長時間。想了解如何將這種類型的PHP代碼翻譯成剃刀C#

因此,如果用戶沒有有效的醫療問卷,則將使用空白問卷頁面來選擇是或否單選按鈕。問卷編碼的部分看起來像這樣:

<tr> 
<td width="33">1.</td> 
<td width="491">Heart or circulatory problems including: high blood pressure, heart attack, angina, heart murmur, heart failure, palpitations, circulatory problemseg. whitefinger, blocked arteries, stroke aneurysm.</td> 
<td width="68"><input name="medq1" id="yes" type="radio" value="yes" onclick="displayTextBox()" /><label for="yes"> Yes </label></td> 
<td width="78"><input name="medq1" id="no" type="radio" value="no" onclick="displayTextBox()"/><label for="no"> No </label></td> 

有超過20的問題,但我沒有要發佈的所有,因爲它會引起混亂。

但是,如果用戶在數據庫中存儲了有效的醫療問卷,當他申請許可時,他將被重定向到同一問卷頁面,而不是空的,是和否的單選按鈕應該根據SQL查詢的結果進行檢查。

var sql = "SELECT * FROM Medical WHERE CDSID = @0"; 
var MedicalResult = db.QuerySingle(sql,myCDSID); 
var myQ1 = MedicalResult.Q1; 
: 
: 
: 
var myQ20 = MedicalResult.Q20; 

所以,現在的結果存儲在變量,我們可以使用變量作爲結果告知必須要檢查的單選按鈕。

不過,我是剃刀C#的noob初學者,我只知道非常非常小,但仍然在學習過程中。我知道在PHP中的代碼,但不是在剃刀C#

在PHP中,假裝我們已經從SQL的結果。

<input <?php if ($myQ1 == 'yes'){ echo 'checked="checked"'; } else { } ?> name="medq1" id="yes" type="radio" value="yes" onclick="displayTextBox()" /><label for="yes"> Yes </label> 
<input <?php if ($myQ1 == 'no'){ echo 'checked="checked"'; } else { } ?> name="medq1" id="no" type="radio" value="no" onclick="displayTextBox()"/><label for="no"> No </label> 

但是我如何在Razor C#中做到這一點?

在此先感謝您的指導。仍在學習過程中。

+0

哈哈我知道沒有多少人能在剃刀C#幫助... – Panda 2012-04-21 01:16:52

回答

0

您可以使用ViewBag和@ Html.Raw()輔助方法類似地做到這一點。

// Controller 
public ActionResult YourPage() 
{ 
    ViewBag.MedQ1 = // bool value from SQL 
    View(); 
} 

在YourPage.cshtml

<input @Html.Raw(ViewBag.MedQ1? "checked": "") name="medq1" id="yes" type="radio" value="yes" onclick="displayTextBox()" /><label for="yes"> Yes </label> 
<input @Html.Raw(ViewBag.MedQ1? "": "checked") name="medq1" id="no" type="radio" value="no" onclick="displayTextBox()"/><label for="no"> No </label> 
+0

注意,這僅用於孤例。如果你發現自己重複了代碼,你應該看看[部分視圖](http://rachelappel.com/razor/partial-views-in-asp-net-mvc-3-w-the-razor-查看引擎/) – 2012-04-21 01:12:05

+0

我把控制器放在@ {...}? ViewBag是一種類型的函數嗎? – Panda 2012-04-21 01:15:44

+0

@Panda ViewBag是由您的控制器和視圖「共享」的動態對象。控制器位於項目的Controllers文件夾中,並且是用於調用「頁面」的代碼(「操作」)的位置。這是一個「Action」,應該放在你的頁面的Controller中。結帳:http://www.asp.net/mvc/overview/controllers-and-routing – rcdmk 2012-04-21 01:38:03