2012-04-21 36 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