我对我一直在做的项目有疑问。 我尝试做一个简单的数学练习,你必须完成数字和操作,我的程序必须为用户动态创建文本框,这是因为有些情况下结果的长度为3个数字或2个,我的问题是我有这样的模型:
public class Sum
{
public string num1 { get; set; }
public string num2 { get; set; }
public string[] numbers { get; set; }
public int textBox { get; set; }
}
我有一个像这样的班级的模特:
public class Operations
{
public Sum sum { get; set; }
public Subtraction sub { get; set; }
public string operation { get; set; }
public string count { get; set; }
}
然后,在我的控制器中,当用户点击链接"练习"时,我有这个方法:
public ActionResult Exercises()
{
Ejercicios_Primero objeto = new Ejercicios_Primero();
string numero = objeto.numeros(75, 0, 100);
string numero2 = objeto.numeros(20, 0, 100);
string count = "1";
int textBox = ((int.Parse(numero) + int.Parse(numero2)).ToString()).Length;
return View(new Operations { operation = "sum", sum = new Sum { num1 = numero, num2 = "0" + numero2, textBox = textBox }, count = count });
}
paremeter textBox是要知道我将在表单上创建多少TextBox,我在javascript中有这样的代码:
<script>
createInputs = function () {
var input = $('<input />').attr("type", "textbox").attr("name", "numbers");
return input;
}
$(function () {
var boxes = eval('@Model.sum.textBox');
if (boxes != null) {
$('#boxes').html("");
for (var i = 0; i < boxes; i++){
$('#boxes').append(createInputs());
}
}
})
因此,我有类似的内容
参数操作是让控制器在接收类型模型时知道使用什么方法&#34;操作&#34;,我的控制器中有下一个代码,模型作为参数:
public ActionResult Exercises(Operations model)
{
Respuesta check = new Respuesta();
switch (model.operation)
{
case "sum":
string message = "";
if (model.sum.numbers != null)
{
foreach (string inputValue in model.sum.numbers)
{
message += inputValue + "\\n";
}
ModelState.AddModelError("", message);
return View(model);
}
else
{
ModelState.AddModelError("", "Numbers is null");
return View(model);
}
case "sub":
check = Resta(int.Parse(model.sub.num1), int.Parse(model.sub.num2), int.Parse(model.sub.res1), int.Parse(model.sub.res2));
if (!check.state)
{
ModelState.AddModelError("", check.message);
return View(model);
}
else
{
Operations model2 = new Operations();
Ejercicios_Primero objeto = new Ejercicios_Primero();
string numero = objeto.numeros(75, 0, 100);
model2.operation = "sum";
model2.sum = new Sum();
model2.sum.num1 = numero;
numero = objeto.numeros(20, 0, 100);
model2.sum.num2 = "0" + numero;
return View(model2);
}
}
return View();
}
在这种情况下的变量检查,无关紧要,我遇到的问题是当我收到模型并尝试访问数据时,我的model.sum.numbers完全是空的,我不会&# 39;我知道为什么我在这个页面上做了javascript基础:https://www.aspsnippets.com/Articles/Implement-Dynamic-TextBox-controls-with-Add-Remove-Button-in-ASPNet-MVC.aspx。
注意:我知道我没有对阵列做任何事情,只是为了测试。