C# 新手cshtml if、随机数和传回数据

C# 新手cshtml if、随机数和传回数据,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,我是一名C程序员,试图使用Visual Studio 2015社区版学习C ASP.NET MVC 因此,我有我的观点,我想随机展示两个“选择某样东西”问题中的一个: <p>I like to eat @Html.DropDownList("answers[0]" + Model[0].ToSelectList(), "") . </p> 当我开始使用SQL时,我将能够改进数据库的这种方法,但现在我对CSV数据非常熟悉,这对我来说更快、更容易 OptionModel

我是一名C程序员,试图使用Visual Studio 2015社区版学习C ASP.NET MVC

因此,我有我的观点,我想随机展示两个“选择某样东西”问题中的一个:

<p>I like to eat
@Html.DropDownList("answers[0]" + Model[0].ToSelectList(), "") 
.
</p>
当我开始使用SQL时,我将能够改进数据库的这种方法,但现在我对CSV数据非常熟悉,这对我来说更快、更容易

OptionModel as required注意:昨天回家之前,我刚从一个更有经验的人那里借了这个

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 });
    }
}

您可以尝试以下方法:

@{
    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代码,比如声明变量、方法等,然后我们可以使用它们。

回答得好。另外@ICANTDOPETTY可以研究razor C,这是一个坚实的起点。这将生成非连续索引器,并且在发布时不会绑定到模型。@StephenMuecke我明白你的意思。但随着发布的代码和问题,这一点就出来了。如果错误,请告诉我如何更正或删除我的答案。事先非常感谢。OP尚未向我们提供足够的信息,以确定解决其设计问题的最佳方法。谢谢Christos。为什么rnd.Next1,2不能50/50?您命名的方式意味着您在提交时无法绑定到模型。您能否显示模型,包括.ToSelectList方法。@StephenMuecke问题已更新。根据您原来的问题显示2个下拉列表中的1个,如果您将其更改为@Html.DropDownListanswers。。。没有索引器,因为您的参数是string[]answers-尽管它也可以是string answer。然而,所有这些都不会真正起到任何作用。该参数可能包含苹果,但您甚至不知道问题是什么。因此,我需要一些方法使答案[n]包含对模型[n]的响应,并使其不会自行收缩。我可以先做一个answers[]并根据Model.Length用NULL这个词填充它吗?为了好玩,我可以看看这个-点击反复运行
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 });
    }
}
@{
    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>
}