初学者。 cshtml if,随机数和传递数据

时间:2015-08-01 07:59:49

标签: c# asp.net-mvc razor

我是一名C程序员,正在尝试使用Visual Studio 2015 Community Edition学习C#ASP.NET MVC。

所以,我有自己的看法,我想随机展示两个“选择问题”中的一个:

<p>I like to eat
@Html.DropDownList("answers[0]" + Model[0].ToSelectList(), "") 
.
</p>

<p>My hair is
@Html.DropDownList("answers[1]" + Model[1].ToSelectList(), "") 
.
</p>

但事实证明我无法弄清楚其中一个要求:

  1. 生成50/50随机数
  2. 我们在if中编写HTML)。任何人都可以向我推进正确的方向吗?
  3. 此外,我似乎能够使用这种“答案”结构,而无需制作它。如果我最终得到的答案只有索引2,9和33中的数据,那么34元素数组是否会被传回(发布?)

    其他信息我无法挤进评论:

    @Christos我不想用信息重载问题,但我想我会有一个说10个问题的列表,但我只希望每个访问者到我的页面回答5.所以我做'节目这两个问题中的一个是五对的,然后我会让我的控制器执行此操作:

    [HttpPost]
        public ActionResult Index(string[] answers)
        {
            StringBuilder sb = new StringBuilder();
            foreach(var response in answers)
            {
                sb.Append(response);
                sb.Append(",");
                string responses = sb.ToString();
            }
    
            string time = DateTime.Now.ToString();
    
            string output = time + "," + HttpResponseSubstitutionCallback;
    
            StreamWriter sw = new StreamWriter("C:\\Temp\\responses.csv");
            sw.WriteLine(output);
            sw.Close();
            return View();
        }
    

    当我拿起SQL时,我将能够使用数据库改进这种方法,但是现在我对CSV数据非常熟悉,这对我来说更快更容易。

    根据要求提供OptionModel(注意:我刚刚在昨天回家之前从有经验的人那里借了这个)

    public class OptionModel
    {
        public string SelectedOption { get; set; }
        public List<string> PossibleOptions { get; set; }
    
        public OptionModel(params string[] possibleOptions)
        {
            PossibleOptions = possibleOptions.ToList();
        }
    
        public IEnumerable<SelectListItem> ToSelectList()
        {
            return PossibleOptions.Select(x => new SelectListItem { Text = x, Value = x });
        }
    }
    

1 个答案:

答案 0 :(得分:3)

您可以尝试这样的事情:

@{
    Random rnd = new Random();
    // This will return either 1 or 2 randomly.
    int question = rnd.Next(1, 3);
}

@if(question==1)
{
    <p>I like to eat
    @Html.DropDownList("answers" + Model[0].ToSelectList(), "") 
    </p>
}
else
{
    <p>My hair is
    @Html.DropDownList("answers" + Model[1].ToSelectList(), "") 
    </p>
}

当我们使用以@@{ }开头的块时,我们可以在此块中放置任何有效的c#代码,比如声明变量,方法等,稍后我们可以使用他们。