我正在创建一个简单的应用程序,我要求用户指定要迭代到的数字,以及他们想要输出的行数。我认为我真的很接近,但在这方面还很陌生,所以我相信一些语法和变量调整会让我到达那里。我正在使用 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 就没有被设置。我会将其移动到两个 View 中或使用 jquery 和 ajax 做一些事情。
这是两个 View 的解决方案。
创建一个类并添加两个整数属性(x 和 y)。有一个单独的 View ,将 X 和 Y 绑定(bind)到单独的输入。
public class Iterator
{
public int x { get; set; }
public int y { get; set; }
}
像您的第一个 View 一样创建第二个接受模型的 View 。然后您的第二个 View 将如下所示:
@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 View 绑定(bind)到 X 和 Y,然后转发到这个迭代 View 。如果没有,请告诉我。
编辑:这是第一个 View 的样子:
@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!">
}
现在只需创建 Controller 方法就可以了!请注意,它们可以是 HTTPGet,这取决于您。
关于c# - 创建一个涉及迭代的简单应用程序,然后出现问题。可能很容易解决。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32788172/