创建一个涉及迭代的简单应用程序,然后出现问题。可能很容易解决。

Creating a simple application involving iteration, and something is off. Likely an easy fix.

我正在创建一个简单的应用程序,我要求用户指定要迭代到的数字,以及他们想要输出的行数。我认为我真的很接近,但在这方面还很陌生,所以我相信一些语法和变量调整会让我到达那里。我正在使用 MVC 在 .Net 中创建它。我在 运行 时收到错误消息,因为 "x" 和 "y" 名称未显示。这是我拥有的:

<body>
<div> 

    @{


        var numCount = x;
        var colCount = y; 

        for (int i = 1; i < numCount; i++)
        {
            <span>@i</span>

            if (i % colCount == 0)
            {
                <br />
                    <form id="myForm">
                        How many numbers would you like to iterate to?
                        <br/>
                        <input id="x" type="text" name="x" />
                        <br/>
                        How many rows would you like in your iteration?
                        <br />
                        <input id="y" type="text" name="y" />
                        <br />
                        <input type="submit" value="Calculate!" onsubmit="return i()" />
                    </form>

            }
        }



    }

</div>

一旦设置了numCount 和colCount 就没有设置X 和Y。我会将其移动到两个视图中或使用 jquery 和 ajax 做一些事情。

这是两个视图的解决方案。

创建一个 class 并添加两个整数属性(x 和 y)。有一个单独的视图,将 X 和 Y 绑定到单独的输入。

public class Iterator
    {
        public int x { get; set; }

        public int y { get; set; }
    }

像您的第一个视图一样创建第二个接受模型的视图。那么您的第二个视图将如下所示:

@Model Iterator

<div>

    @{


        var numCount = Model.x;
        var colCount = Model.y;

        for (int i = 1; i < numCount; i++)
        {
            <span>@i</span>
            Do more stuff here.

        }


    }

</div>

我假设您可以将一个简单的 POST 视图绑定到 X 和 Y 并转发到此迭代视图。如果不告诉我。

编辑:这是第一个视图的样子:

@Model Iterator

@Html.BeginForm("SecondView", "ControllerName", FormMethod.Post)
{


   How many numbers would you like to iterate to?
   @Html.TextBoxFor(x => x.x)

   <br />
   How many rows would you like in your iteration?
   @Html.TextBoxFor(x => x.y)

<br />
<input type="submit" value="Calculate!">
}

现在只需创建控制器方法就可以了!请注意,它们可以是 HTTPGet,这取决于您。