【发布时间】:2014-02-05 20:17:46
【问题描述】:
我可能做错了,但它部分工作,所以我希望这是我缺乏正确语法的知识。
我正在从运行正常的 linq 查询构建一个复选框数组。然后我检查答案是否具有与复选框值匹配的值。到目前为止一切顺利,但它不会创建一个数组来输入数据库,它只是返回第一个复选框的值。
你能在我的语法中发现一个错误吗?我对 Razor 非常陌生,并且倾向于坚持使用我知道的 HTML,而不是助手。我会及时学习的!
// Checkbox
<div class="checkbox">
@foreach (var item in q.QuestionOptions.OrderBy(o => o.QuestionOptionRanking))
{
if (q.Answer == item.QuestionOption1)
{
<input type="checkbox" name="Answer" id="Answer" value="@item.QuestionOption1" checked />@item.QuestionOption1<br />
**q.Answer = q.Answer + "," + item.QuestionOption1;**
}
else
{
<input type="checkbox" name="Answer" id="Answer" value="@item.QuestionOption1" />@item.QuestionOption1<br />
}
}
</div>
q.Answer 语句什么都不做。请问我应该怎么编码?
还有模型;
namespace Template.Models
{
using System;
using System.Collections.Generic;
public partial class QuestionOption
{
public int Id { get; set; }
public int QuestionId { get; set; }
public string QuestionOption1 { get; set; }
public Nullable<int> QuestionOptionRanking { get; set; }
public virtual Question Question { get; set; }
}
}
【问题讨论】:
-
我会为每个
item更改id。我不知道这是否是您问题的根源,但我建议您首先为所有复选框生成唯一 ID。 -
有机会举个例子吗?有人发布了代码,我试过了,但它不起作用,新的例子不见了!不知道那里发生了什么;但它还是没有用。
-
那是我,但我误解了你的问题,所以我删除了我的(错误的)答案。您应该发布您的模型定义(即
QuestionOptions),以便我们有信息可以构建。 -
如果您尝试将发布的值绑定到
QuestionOption模型,应该有名称为answer的属性。此外,它应该是list,在view中生成的名称应该是[0].answer,[1].answer..... -
但答案并不总是一个列表;在其他 3 个条件下,它是一个字符串。也许我试图在一个动作中做太多事情并且应该拆分动作?
标签: c# asp.net-mvc arrays razor checkbox